我有一个父进程,它会分叉一些子进程。我正在寻找子进程如何使用消息与父进程通信的方式。我尝试将父母的pid发送给子进程,如果我可以使用父亲的pid发回消息,那将会很棒。
提前致谢。
答案 0 :(得分:2)
如果您使用child_process.fork(),那么当您创建新分叉时,会返回Child Process。
根据文件:
的文件返回的ChildProcess将进行额外的通信 内置的通道,允许消息来回传递 父母和孩子之间。有关详细信息,请参阅child.send()。
重要的是要记住产生的Node.js子进程 除了IPC通信之外,它们独立于父级 在两者之间建立的渠道。每个过程都有自己的过程 内存,带有自己的V8实例。因为额外的 需要资源分配,产生大量的孩子 不建议使用Node.js进程。
你可以在哪里找到这段代码:
例如,在父脚本中:
const cp = require('child_process');
const n = cp.fork(`${__dirname}/sub.js`);
n.on('message', (m) => {
console.log('PARENT got message:', m);
});
n.send({ hello: 'world' });
然后子脚本'sub.js'看起来像这样:
process.on('message', (m) => {
console.log('CHILD got message:', m);
});
process.send({ foo: 'bar' });