失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Node.js中child_process实现多进程

Node.js中child_process实现多进程

时间:2024-04-06 08:45:47

相关推荐

Node.js中child_process实现多进程

web前端|js教程

Node.js child process 多进程

web前端-js教程

最新房产源码,ubuntu查看时区时间,爬虫晋江小说python,php error 1,seo_whlzw

var http = require(http);function fib (n) { if (n < 2) { return 1; } else { return fib(n - 2) + fib(n - 1); }}var server = http.createServer(function (req, res) { var num = parseInt(req.url.substring(1), 10); res.writeHead(200); res.end(fib(num) + "\n");});server.listen(8000);

以上示例提供了一个斐波纳契数列的计算服务,由于此计算相当耗时,且是单线程,当同时有多个请求时只能处理一个,通过child_process.fork()就可以解决此问题

一元云购免费系统源码,Ubuntu下安装bash,tomcat配置多个路劲,爬虫比价软件,php数据乱码,越秀区seo优化代运营价格lzw

这里引用一下官网上的一个示例,通过这个例子可以很好的理解fork()的功能

信息安全防火墙源码,vscode设置当前tab颜色,ubuntu配置ftp,tomcat服务不能启动,pdo( sqlite,家乡旅游景点介绍的网页设计,空间和数据库,云服务器和云虚拟主机的区别,ecshop插件安装,notebook前端框架,爬虫脑享受,php中文分词,seo盒子,springboot编程接口,帝国全局标签,网站中英切换实例,易语言复制网页图片,页面模板,网站后台编辑器,网上订餐的后台管理页面,凡若企业网站管理系统,网游交易平台源程序lzw

var cp = require(child_process);var n = cp.fork(__dirname + /sub.js);n.on(message, function(m) { console.log(PARENT got message:, m);});n.send({ hello: world });

执行上述代码片段的运行结果:

PARENT got message: { foo: ar }CHILD got message: { hello: world }

sub.js的内容如下:

process.on(message, function(m) { console.log(CHILD got message:, m);});process.send({ foo: ar });

在子进程中process对象有send()方法,同时它在每一次接收到消息时都会发布消息对象

有点晕的是:child.send()发送的消息,是由process.on()方法接收的,process.send()方法发送的消息是由child.on()方法接收的

参照这个例子我们就可以把第一个提供斐波纳契数据的服务进行改进,使每一个请求都有单独的一个新的进程来处理

var http = require(http);var cp = require(child_process);var server = http.createServer(function(req, res) { var child = cp.fork(__dirname + /fibonacci-calc.js);//每个请求都单独生成一个新的子进程 child.on(message, function(m) { res.end(m.result + \ ); }); var input = parseInt(req.url.substring(1)); child.send({input : input});});server.listen(8000);

fibonacci-calc.js

function fib(n) { if (n < 2) { return 1; } else { return fib(n - 2) + fib(n - 1); }}process.on(message, function(m) { process.send({result: fib(m.input)});});

启动服务后,访问http://localhost:8080/9就可以计算出9的斐波纳契数列的值

以上就是本文的全部内容了,希望大家能够喜欢。

更多Node.js中child_process实现多进程相关文章请关注PHP中文网!

如果觉得《Node.js中child_process实现多进程》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。