AFAIK Node.js非同期タスクがlibuvにディスパッチされ、libuvにはスレッドプールがあり、デフォルトでプールには4つのスレッドがあります。 私は以下のコードをテスト:私は3タスクを同時に実行しますlibuvに送ると思うし、出力A/B/Cがほぼ同時に印刷する必要がありますが、なぜNode.js libuvスレッドプールの実行が同時に行われないのですか?
setImmediate(() => {
sleep(1000 * 3);
console.log('a');
});
setImmediate(() => {
sleep(1000 * 3);
console.log('b');
});
setImmediate(() => {
sleep(1000 * 3);
console.log('c');
});
function sleep(time) {
let start = new Date().getTime();
while (new Date().getTime() - start < time) {
}
}
を実際には、3つの出力3秒ごとに表示されます。 どこが間違っていますか?ありがとう。 4つのスレッドは デフォルトプールにある、