node.js 多线程
时间: 2023-11-24 20:51:34 浏览: 41
Node.js 在 v10.5.0 版本中增加了对多线程的支持,使用的是 `worker_threads` 模块。下面是一个简单的例子:
```javascript
const { Worker } = require('worker_threads');
function runService(workerData) {
return new Promise((resolve, reject) => {
const worker = new Worker('./worker.js', { workerData });
worker.on('message', resolve);
worker.on('error', reject);
worker.on('exit', (code) => {
if (code !== 0)
reject(new Error(`Worker stopped with exit code ${code}`));
})
});
}
(async () => {
const result = await runService('workerData');
console.log(result);})();
```
在上面的例子中,我们使用 `Worker` 类创建了一个新的工作线程,并将 `workerData` 传递给它。工作线程的代码在 `./worker.js` 文件中实现。当工作线程完成任务并发送消息时,我们可以在主线程中使用 `console.log` 打印出结果。