巧妙的 Node.js:线程池和操作系统操作
const os = require('os');
const { Pool } = require('worker_threads');
// 创建一个工作线程池
const pool = new Pool({
workerData: {
workerCount: os.cpus().length
},
// 设置工作线程的数量
size: os.cpus().length
});
// 定义工作线程执行的任务
pool.run(() => {
console.log(`工作线程编号: ${workerData.workerCount}`);
});
// 监听工作线程的消息
pool.on('message', (message) => {
console.log('工作线程发送的消息:', message);
});
// 处理工作线程的错误
pool.on('error', (error) => {
console.error('工作线程发生错误:', error);
});
// 结束所有工作线程
pool.terminate();
这个示例代码展示了如何在Node.js中使用worker_threads
模块创建一个工作线程池,并对其进行管理。它演示了如何设置工作线程的数量,监听工作线程的消息和错误,并在最后正确地终止所有工作线程。这是一个很好的教学示例,对于想要学习如何有效地利用多线程技术的开发者来说,具有很好的参考价值。
评论已关闭