我有以下代码:
var schedules = io.on('connection', function(client) {
var schJSON = JSON.parse(fs.readFileSync(__dirname +'huge_file.json', 'utf8'));
client.json.send(schJSON);
});
readFileSync
作为一个阻塞调用,我认为当服务器正在处理一个客户端的请求时,其他客户端会排队。因此,如果读取文件大约需要 10 秒,并且我触发了与服务器的三个不同连接,那么第三个连接将需要大约 30 秒才能得到响应。
实际上,所有三个客户端几乎同时获得响应(经过 10 秒后)。这三个请求是从三台不同的机器(具有相同的外部 IP 地址)发出的。
这怎么可能?