child_process.exec 启动的时候是有顺序的,但是执行的时候并没有顺序,这里的多进程已经是并发执行了
const fs = require('fs');
const child_process = require('child_process');
for(var i=0; i<10; i++) {
console.log("开始执行第"+i+"个进程")
var workerProcess = child_process.exec('node support.js -n ' + i, function (error, stdout, stderr) {
if (error) {
console.log(error.stack);
console.log('Error code: '+error.code);
console.log('Signal received: '+error.signal);
}
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
});
workerProcess.on('exit', function (code) {
console.log('子进程已退出,退出码 '+code);
});
}
const yargs = require('yargs');
const argv = yargs.alias('n', 'num').argv
setTimeout(()=>{
console.log("pid是"+process.pid + "num是" + argv.num);
},1000* Math.ceil(Math.random()*10));
多进程并发执行
child_process.exec 启动时有序,但执行时并发。示例代码展示了如何使用 child_process.exec 启动多个并发进程,并处理进程的输出和错误。