Node.js 是一个基于 Chrome V8 引擎的单线程事件驱动的非阻塞 I/O 模型。这种设计使得 Node.js 在处理 I/O 密集型任务(如网络请求、文件读写等)时非常高效,因为 I/O 操作是异步的,不会阻塞主线程。然而,对于 CPU 密集型任务,单线程模型可能会成为瓶颈,因为所有计算都在一个线程中完成。
为了解决这个问题,Node.js 从 v10.5.0 版本开始引入了 worker_threads 模块,允许开发者在 Node.js 中使用多线程。worker_threads 模块提供了一个轻量级的方式来创建线程,这些线程可以共享内存,从而进行高效的并行计算。
使用 worker_threads 模块
以下是一个简单的示例,展示了如何在 Node.js 中使用 worker_threads 模块来创建和通信线程。
主线程(main.js)
const { Worker, isMainThread, parentPort, workerData } = require('worker_threads');
if (isMainThread) {
// 在主线程中创建 Worker 实例
const worker = new Worker(__filename, {
workerData: { num: 42 } // 将数据传递给 Worker 线程
});
worker.on('message', (message) => {
console.log('Received from worker:', message);
});
worker.on('error', (error) => {
console.error('Worker error:', error);
});
worker.on('exit', (code) => {
if (code !== 0)
console.error(`Worker stopped with

最低0.47元/天 解锁文章
354

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



