【发布时间】:2022-01-10 21:32:06
【问题描述】:
我有一小段示例代码:
//main.js
const {Worker} = require("worker_threads");
const worker = new Worker("./background.js", {workerData: {}});
function loop() {
console.log("main: 1234567890");
setTimeout(loop, 0)
}
loop();
还有:
//background.js
const {parentPort, workerData} = require("worker_threads");
function loop () {
console.log("background: 1234567890");
setTimeout(loop, 0)
}
loop();
像这样运行:node main.js
输出是这样的:
background: 1234567890
main: 1234567890
background: 1234567890
main: 1234567890
background: 1234567890
background: 1234567890
#etc
有时,一个线程中的多个console.log() 会在另一个线程调用之前被调用。这是意料之中的,很好。
但是有没有可能在另一个console.log() 的中间 调用console.log()?例如,这会发生吗?
background: 123main: 12345456786789090
我没有在我的输出中观察到它,但我想从规范的来源知道 Workers/console.log() 在 node.js 中不是这样工作的。
【问题讨论】:
标签: javascript node.js ecmascript-6 web-worker