无法理解subprocess创build的顺序

我刚刚开始使用node ,在这个程序中,我创build了3个subprocess,但是以奇怪的顺序接收返回信号。

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,节点5.5)