极客教程
Nodejs介绍
Nodejs安装配置
Window 上安装Node.js
Ubuntu 上安装 Node.js
CentOS 下安装 Node.js
Node.js 创建第一个应用
NPM使用介绍
Nodejs REPL
Nodejs函数及事件
Nodejs函数
Nodejs事件循环
Nodejs EventEmitter
Nodejs Buffer
Nodejs Buffer讲解
方法参考手册
Nodejs Stream
Nodejs模块系统
Nodejs路由
Nodejs全局对象
全局对象与全局变量
__filename
__dirname
setTimeout(cb,ms)
clearTimeout(t)
setInterval(cb,ms)
console
process
process方法手册
Nodejs常用工具
Nodejs文件系统
打开文件
获取文件信息
写入文件
读取文件
关闭文件
截取文件
删除文件
创建目录
读取目录
删除目录
Nodejs GET/POST请求
Nodejs工具模块
OS模块
Path模块
Net模块
net.Server
net.Socket
DNS模块
Domain模块
Nodejs Web模块
使用 Node 创建 Web 服务器
使用 Node 创建 Web 客户端
Nodejs Express框架
Nodejs RESTfult API
Nodejs多进程
exec()方法
spawn() 方法
fork方法
nodejs基础教程

child_process.fork 是 spawn() 方法的特殊形式,用于创建进程,语法格式如下:

child_process.fork(modulePath[, args][, options])

参数 数说明如下: modulePath: String,将要在子进程中运行的模块 args: Array 字符串参数数组 options:Object

  • cwd String 子进程的当前工作目录
  • env Object 环境变量键值对
  • execPath String 创建子进程的可执行文件
  • execArgv Array 子进程的可执行文件的字符串参数数组(默认: process.execArgv)
  • silent Boolean 如果为true,子进程的stdin,stdout和stderr将会被关联至父进程,否则,它们将会从父进程中继承。(默认为:false)
  • uid Number 设置用户进程的 ID
  • gid Number 设置进程组的 ID

返回的对象除了拥有ChildProcess实例的所有方法,还有一个内建的通信信道。

实例

让我们创建两个 js 文件 support.js 和 master.js。 support.js 文件代码:

console.log("进程 " + process.argv[2] + " 执行。" );

master.js 文件代码:

const fs = require('fs');
const child_process = require('child_process');

for(var i=0; i<3; i++) {
   var worker_process = child_process.fork("support.js", [i]);    

   worker_process.on('close', function (code) {
      console.log('子进程已退出,退出码 ' + code);
   });
}

执行以上代码,输出结果为:

$ node master.js 
进程 0 执行。
子进程已退出,退出码 0
进程 1 执行。
子进程已退出,退出码 0
进程 2 执行。
子进程已退出,退出码 0

评论

参与评论
暂无评论