最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

node.js玩转进程实例

来源:懂视网 责编:小采 时间:2020-11-27 19:59:10
文档

node.js玩转进程实例

node.js玩转进程实例:本文主要和大家分享node.js玩转进程实例,node提供了child_process模块,我们再将经典的示例代码存为worker.js文件,如下:let http=require('http'); http.createServer(function (req,res) { res.writeHea
推荐度:
导读node.js玩转进程实例:本文主要和大家分享node.js玩转进程实例,node提供了child_process模块,我们再将经典的示例代码存为worker.js文件,如下:let http=require('http'); http.createServer(function (req,res) { res.writeHea

本文主要和大家分享node.js玩转进程实例,node提供了child_process模块,我们再将经典的示例代码存为worker.js文件,如下:

let http=require('http');
http.createServer(function (req,res) {
 res.writeHead(200,{'Content-Type':"text/plain"});
 res.end('hello world')
}).listen(Math.round((1+Math.random())*1000),'127.0.0.1');

将以下代码保存为master.js,并通过node master.js 启动它:

let fork=require('child_process').fork;
let cpus=require('os').cpus();for(let i=0;i<cpus.length;i++){ fork('./work.js');
}

在*nix的系统下通过ps aux|grep worker.js查看进程数量。
这就是master-worker模式,又称主从模式。
360截图20180317163901997.jpgfork复制的进程都是独立的,这个进程有着独立而全新的V8实例。fork进程是昂贵的。

9.2.1 创建子进程

新版的node里面子进程也有同步子进程和异步子进程了,这里指的是异步子进程
- spawn():启动一个子进程
- exec():启动一个子进程,与spawn的不同是他有一个回调函数
- execFile():启动一个子进程来执行可执行文件
- fork():与spawn类似,不同点在于他创建node子进程只需要指定js文件即可

spawn与exec、execFile的不同是,后两者创建时可以指定timeout属性设置超时时间,时间到之后可以杀死子进程。
exec与execFile不同的是,exec适合执行已有的命令,execFile适合执行文件。

let cp=require('child_process');
cp.spawn('node',['worker.js']);//没有回调函数cp.exec('node worker.js',function (err,stdout,stderr) {});
cp.execFile('worker.js',function (err,stdout,stderr) {});
cp.fork('./worker.js');

9.2.2 进程间通信

parent.js:

let cp=require('child_process');let n=cp.fork(__dirname+ './worker.js');
n.on('message',function (m) {});
n.send({hello:'world'});

文档

node.js玩转进程实例

node.js玩转进程实例:本文主要和大家分享node.js玩转进程实例,node提供了child_process模块,我们再将经典的示例代码存为worker.js文件,如下:let http=require('http'); http.createServer(function (req,res) { res.writeHea
推荐度:
标签: 玩转 示例 实例
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top