先看下node官网原文
Node.js是单线程的,但可以使用多进程实现并行处理任务,从而模拟多线程的效果。Node.js提供了child_process
模块,允许开发者创建子进程,并与之进行通信。
下面是一个使用child_process
模块实现多进程的示例:
const { fork } = require('child_process');
// 创建多个子进程
const process1 = fork('worker.js');
const process2 = fork('worker.js');
// 主进程与子进程通信
process1.send('message for process 1');
process1.on('message', (msg) => {
console.log('Message from process 1:', msg);
});
process2.send('message for process 2');
process2.on('message', (msg) => {
console.log('Message from process 2:', msg);
});
在上面的示例中,fork()
方法用于创建一个子进程,参数为子进程要执行的脚本文件。主进程可以使用send()
方法发送消息给子进程,子进程则可以使用process.on('message')
监听主进程发送的消息,并通过process.send()
方法将消息回传给主进程。
通过创建多个子进程,可以并行处理任务,从而实现类似多线程的效果。