【Node.js之多进程】

异步进程创建方法:
Spawning .bat and .cmd files on Windows
child_process.exec(command[, options][, callback])
child_process.execFile(file[, args][, options][, callback])
child_process.fork(modulePath[, args][, options])
child_process.spawn(command[, args][, options])
同步进程创建方法:
nchronous process creation
child_process.execFileSync(file[, args][, options])
child_process.execSync(command[, options])
child_process.spawnSync(command[, args][, options])
例子1:
child_process.exec(command[, options][, callback])
通过回调函数获取信息。
留意一下exit 和close 事件的区别。
close 是子进程离开并退出标准输入输出流
task.js:

console.log("Process ID:" + process.argv[2]);

multiProcess.js:

const fs = require('fs');
const child_process = require('child_process');
for(var i=0; i<5; i++) {
   var workerProcess = child_process.exec('node C:\\learning\\multiProcess\\task.js '+i,
      function (error, stdout, stderr) {
         if (error) {
            console.log(error.stack);
            console.log('Error code: '+error.code);
            console.log('Signal received: '+error.signal);
         }
		if (stdout.length>0) {
         console.log('stdout: ' + stdout);
		}
		if (stderr.length>0) { 

           console.log('stderr: ' + stderr);
		 }
      });

      workerProcess.on('exit', function (code) {
      console.log('process exit with code:'+code);
   });
     workerProcess.on('close', function (code) {
      console.log('process close with code:'+code);
   });
}


例子2:
child_process.spawn(command[, args][, options])
等待收取信息

const fs = require('fs');
const child_process = require('child_process');
var workerProcess = child_process.spawn('node',['C:\\learning\\multiProcess\\task.js',1]);
workerProcess.stdout.on('data', function (data) {
  console.log('stdout:'+data);
});
workerProcess.stderr.on('data', function (data) {
  console.log('stderr:'+data);
});
workerProcess.on('close', function (code) {
  console.log('process close with code:'+code);
});

结果
在这里插入图片描述
例子3:
child_process.fork(modulePath[, args][, options])
此方法可以用于父子进程交互,即互相收发信息。
process.exit(1);为手动退出。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值