我刚开始使用node
,在这个程序中,我正在创建3个子进程,但是以奇怪的顺序接收返回信号。
parent.js
var child_process = require("child_process");
for(var i=0;i<3;i++){
var child = child_process.exec("node child.js "+i,function(err,stdout){
if(err)
console.log(err);
else
console.log(stdout);
});
};
child.js
var num = process.argv[2];
console.log("Child process "+num+" started.");
process.on('exit',function(){
console.log("Process "+num+" ended.");
});
输出:
Child process 2 started.
Process 2 ended.
Child process 0 started.
Process 0 ended.
Child process 1 started.
Process 1 ended.
我认为这可能是竞争条件,但我每次都得到确切的输出。我真的不确定这背后的原因。
(Ubuntu 14.04,Node 5.5)