应该可行。作为一个简单的例子:
// parent.jsvar child_process = require('child_process');var numchild = require('os').cpus().length;var done = 0;for (var i = 0; i < numchild; i++){ var child = child_process.fork('./child'); child.send((i + 1) * 1000); child.on('message', function(message) { console.log('[parent] received message from child:', message); done++; if (done === numchild) { console.log('[parent] received all results'); ... } });}// child.jsprocess.on('message', function(message) { console.log('[child] received message from server:', message); setTimeout(function() { process.send({ child : process.pid, result : message + 1 }); process.disconnect(); }, (0.5 + Math.random()) * 5000);});因此,父进程产生X个子进程,并向其传递消息。它还安装了一个事件处理程序,以侦听从子级发送回的任何消息(例如,结果)。
子进程等待来自父进程的消息,然后开始处理(在这种情况下,它只是启动一个具有随机超时的计时器来模拟正在完成的工作)。完成后,它将结果发送回父进程,并用于
process.disconnect()将自身与父进程断开连接(基本上停止子进程)。
父进程跟踪已启动的子进程的数量以及已发回结果的子进程的数量。当这些数字相等时,父级从子级进程接收所有结果,因此它可以合并所有结果并返回JSON结果。



