代码如下:
以上示例提供了一个斐波纳契数列的计算服务,由于此计算相当耗时,且是单线程,当同时有多个请求时只能处理一个,通过child_process.fork()就可以解决此问题
这里引用一下官网上的一个示例,通过这个例子可以很好的理解fork()的功能
代码如下:
执行上述代码片段的运行结果:
代码如下:
sub.js的内容如下:
代码如下:
在子进程中process对象有send()方法,同时它在每一次接收到消息时都会发布消息对象
有点晕的是:child.send()发送的消息,是由process.on()方法接收的,process.send()方法发送的消息是由child.on()方法接收的
参照这个例子我们就可以把第一个提供斐波纳契数据的服务进行改进,使每一个请求都有单独的一个新的进程来处理
代码如下:
生成一个新的子进程
child.on('message',function(m) {
res.end(m.result + '\n');
});
var input = parseInt(req.url.substring(1));
child.send({input : input});
});
server.listen(8000);
fibonacci-calc.js
代码如下:
启动服务后,访问就可以计算出9的斐波纳契数列的值
以上就是本文的全部内容了,希望大家能够喜欢。