не блокируют Вы можете использовать цикл событий для написания неблокирующего кода, но генераторы событий не используют цикл событий. Я не знаю, как использовать цикл событий.
у написать неблокирующую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.