node.js玩转进程实例

本文主要和大家分享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

在*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'});

登录后复制

相关推荐:

PHP进程间通信详解

以上就是node.js玩转进程实例的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2781058.html

(0)
上一篇 2025年3月8日 16:12:31
下一篇 2025年3月8日 16:12:35

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 常用的js读写文件排序详解

    最近写js发现很多规则跟自己想的不一样,毕竟刚上手不就,所以绕了很多弯弯,这里总结记录下,本文主要和大家分享常用的js读写文件排序详解,希望能帮助到大家。 1,由于file标签上传时:onchange方法在再次上传相同文件不在被触发 想要被…

    编程技术 2025年3月8日
    200
  • 通过js异步加载图片实现方法

    本文主要和大家分享通过js异步加载图片实现方法,主要是考虑到网络的限制,为了更好的用户体验,采用异步加载显示的方法为img加载图片,直接贴代码:  标签: 登录后复制登录后复制 js: function getHead(obj,portra…

    编程技术 2025年3月8日
    200
  • js如何制作简单的发布功能

    本文主要和大家分享js如何制作简单的发布功能,主要以代码的形式和大家分享,希望能帮助到大家。 代码如下: nbsp;html>                    demo                         .show…

    编程技术 2025年3月8日
    200
  • js编译语言与解释型语言详解

    本文主要和大家分享js基础知识—编译语言与解释型语言,希望能帮助到大家。 1、原始型类型与引用型1. 编译语言与解释型语言的区别 编译型语言:通篇先编译出一个文件,程序会自动执行这个文件。 优点:快; 缺点:不能跨平台。 服务器…

    2025年3月8日
    200
  • JS混合继承详解

    本文主要和大家分享js混合继承详解,希望能帮助到大家。 window.onload=function(){//混合继承:原型实现继承+借用构造函数继承function Person(name,age,gender,wight){this.n…

    编程技术 2025年3月8日
    200
  • js鼠标事件实例详解

    本文主要和大家分享js鼠标事件实例详解,希望能帮助到大家。 一般事件   事件 浏览器支持 描述 onClick HTML: 2 | 3 | 3.2 | 4Browser: IE3 | N2| O3 鼠标点击事件,多用在某个对象控制的范围内…

    编程技术 2025年3月8日
    200
  • JS为动态创建的元素添加事件

    本文主要和大家介绍了js实现为动态创建的元素添加事件操作,涉及javascript页面元素动态添加及事件响应相关操作技巧,需要的朋友可以参考下,希望能帮助到大家。 html中直接生成的元素,添加事件,我们都知道,但是如何为一个动态生成的元素…

    2025年3月8日
    200
  • nodejs和mongodb aggregate级联查询操作详解

    最近完成了一个nodejs+mongoose的项目,碰到了mongodb的级联查询操作。情形是实现一个排行榜,查看某个公司(organization)下属客户中发表有效文ruan章wen最多的前十人。 Account表:公司的信息单独存在一…

    编程技术 2025年3月8日
    200
  • nodejs超简单生成二维码方法

    本文主要和大家介绍了nodejs实现超简单生成二维码的方法,结合实例形式分析了nodejs基于qr-image插件生成二维码的相关操作技巧,需要的朋友可以参考下,一开始使用node-qrcode(https://github.com/sol…

    编程技术 2025年3月8日
    200
  • p5.js实现鼠标交互的示例

    本文主要和大家介绍了p5.js入门教程之鼠标交互的示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。 一、鼠标交互常用关键词 p5.js提供了许多鼠标操作用的关键词与函数,常用的有: mou…

    编程技术 2025年3月8日
    200

发表回复

登录后才能评论