梗概
- 使用的[base::IPC]方式为:管道
示例
使用 child_process 模块
// parent.js
const { fork } = require('child_process');
const child = fork('child.js');
child.on('message', (msg) => {
console.log('Message from child:', msg);
});
child.send({ hello: 'world' });// child.js
process.on('message', (msg) => {
console.log('Message from parent:', msg);
});
process.send({ foo: 'bar' });使用 cluster 模块
// master.js
const cluster = require('cluster');
const numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
for (let i = 0; i < numCPUs; i++) {
cluster.fork();
}
Object.values(cluster.workers).forEach(worker => {
worker.on('message', messageHandler);
});
} else {
process.on('message', messageHandler);
}
function messageHandler(msg) {
console.log(`Message received: ${msg}`);
}// worker.js
process.send('Hello from worker!');以上是在 Node.js 中实现进程间通信的两种方法,可以根据具体的需求选择适合的方式。