JavaScript多线程与开发工具全解析
1. 线程间消息通信
在多线程编程中,线程间的消息通信至关重要。主线程与工作线程可以通过 Worker 对象来收发消息。同时,工作线程API允许使用 MessageChannel API创建自定义通信通道。
假设主线程中的两个不同模块向工作线程发送不同类型的消息,这两个模块可以共享默认通道,使用 worker.postMessage() 发送消息,但如果每个模块有自己的私有通道,代码会更清晰。另外,当主线程创建两个独立的工作线程时,自定义通信通道可以让这两个工作线程直接通信,而无需通过主线程中转。
创建新的消息通道可以使用 MessageChannel() 构造函数, MessageChannel 对象有两个属性 port1 和 port2 ,它们分别指向一对 MessagePort 对象。在一个端口上调用 postMessage() 会在另一个端口上生成一个“message”事件,并附带消息对象的结构化克隆。示例代码如下:
const threads = require("worker_threads");
let channel = new threads.MessageChannel();
channel.port2.on("message", console.log); /
JavaScript多线程与开发工具解析
超级会员免费看
订阅专栏 解锁全文
1572

被折叠的 条评论
为什么被折叠?



