Node.js Worker 线程:并行处理 CPU 密集型任务
使用 worker_threads 模块创建多线程,突破单线程瓶颈。 · 难度:入门 · +15XP
为什么需要 Worker 线程?
Node.js 主线程是单线程的,当遇到 CPU 密集型任务(如大数据计算、图像处理)时会阻塞事件循环。Worker 线程允许我们在独立线程中运行 JavaScript 代码,实现真正的并行处理。
基本用法
const { Worker } = require('worker_threads');
const worker = new Worker('./worker.js');
worker.on('message', (msg) => console.log(msg));
worker.postMessage('开始工作');
主线程与 Worker 通信
| 方法 | 作用 |
|---|---|
| worker.postMessage() | 向 Worker 发送消息 |
| worker.on('message') | 接收 Worker 消息 |
| parentPort.postMessage() | Worker 向主线程发送消息 |
练习提示
完善下方代码,创建一个 Worker 线程执行斐波那契数列计算,并将结果返回主线程。