主进程文件
const { Worker } = require("worker_threads");
const worker = new Worker("./te05.js");
worker.setMaxListeners(Infinity); //对主进程设置最大监听数量,Infinity或者0表示不设置监听数量,监听超过10个一般会发出警告
worker.on("message", (message) => {
//监听子进程传递过来的消息。默认message事件名称不可更改,对应parentPort.postMessage("呵呵呵我把我传给主进程");
console.log(message, "其它线程传来消息");
worker.terminate(); // 关闭此worker线程
});
worker.postMessage("我是主进程的东东,我把我传给子进程");
// 打印结果
// 我是主进程的东东,我把我传给子进程 我的子线程
// 呵呵呵我把我传给主进程 其它线程传来消息
// -先执行的是子进程的东西。感觉worker.on被挂起,执行完worker.postMessage进了子进程去执行parentPort.on
// 然后才是发送子进程到主进程parentPort.postMessage,在回来执行主进程的worker.on
子进程文件
const { parentPort } = require("worker_threads");
// 子进程引出的是parentPort
// parentPort.on--监听主进程发送过来的消息,注意消息事件必须是message不可以更改,对应
// 主进程中的worker.postMessage("我是主进程的东东,我把我传给子进程");
parentPort.on("message", (message) => {
// message作为参数,则是主进程发送过来的消息"我是主进程的东东,我把我传给子进程"
console.log(message, "我的子线程");
// 下面是子进程向主进程发送消息,
parentPort.postMessage("呵呵呵我把我传给主进程");
});