Я могу написать неблокирующую I / O в Node.js очень легко.Это то, для чего создана вся библиотека.
Но любое вычисление блокируется.Любое сообщение, проходящее через отправителей событий, блокирует .
Например, отправляющие события разрешаются немедленно и, таким образом, блокируются:
var e = new process.EventEmitter;
e.on("foo", function() {
console.log("event");
});
process.nextTick(function() {
console.log("next tick");
});
setTimeout(function() {
console.log("timeout");
}, 0);
e.emit("foo");
> event
> next tick
> timeout
Помимо переноса вызовов в nextTick
, как сделать код неблокирующим?
Я хочу сделать как можно меньше вычислений за цикл цикла событий, чтобы я мог одновременно обслуживать как можно больше клиентов.
Как мне написать свой код неблокирующим образом?
А когда у меня есть неблокирующий код, как мне масштабировать его по нескольким процессам?
Один вариант ожидаетAPI подпроцесса WebWorker будет завершен.