问题描述
这段代码运行了两次,一次在主线程和工作线程上。
const {isMainThread,Worker,parentPort} = require('worker_threads')
console.log(`isMainThread: ${isMainThread}`);
if(isMainThread) {
console.log('from main thread');
const worker = new Worker(__filename);
worker.on('message',(message)=>{
console.log(`message for Worker: ${message}`);
});
worker.on('error',(e)=>{
console.log('error');
});
worker.on('exit',(code) => {
console.log(code);
});
} else {
// case 1:
console.log('from worker thread');
process.exit();
// case 2:
console.log('from worker thread');
parentPort.postMessage('hi worker!');
}
输出案例 1:
isMainThread: true
from main thread
isMainThread: false
0
为什么不从 else 执行 console.log?
输出案例 2:
isMainThread: true
from main thread
isMainThread: false
message for Worker: hi worker!
from worker thread
0
大多数时候worker "message" listener是如何先执行日志的? 尽管每次登录后都会调用 postMessage。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)