Node.js 多线程编程指南
在Node.js中实现多线程,可以使用worker_threads
模块。这个模块允许你创建多线程工作进程,每个进程都是Node.js的一个独立实例。
以下是一个使用worker_threads
模块创建多线程的简单例子:
主线程文件 main.js
:
const { Worker, isMainThread, parentPort, workerData } = require('worker_threads');
if (isMainThread) {
const worker = new Worker('./worker.js', { workerData: { num: 5 } });
worker.on('message', (msg) => {
console.log('来自工作线程的消息:', msg);
});
worker.on('error', (error) => {
console.error('工作线程发生错误:', error);
});
worker.on('exit', (exitCode) => {
console.log('工作线程已退出,退出码:', exitCode);
});
}
工作线程文件 worker.js
:
const { parentPort, workerData } = require('worker_threads');
parentPort.on('message', (message) => {
parentPort.postMessage(workerData.num * 2);
});
parentPort.on('error', (error) => {
console.error(error);
});
在这个例子中,main.js
是主线程,它创建了一个新的工作线程 worker.js
。主线程发送消息给工作线程,工作线程处理完数据后返回结果给主线程。
注意:在实际应用中,多线程的使用场景和复杂度远超示例代码,请确保线程安全,避免死锁和竞态条件等问题。
评论已关闭