浅谈Nodejs如何进行多线程处理


当前第2页 返回上一页

1

2

3

4

5

6

7

8

9

165580141

165580141

165580141

165580141

165580141

165580141

165580141

165580141

no thread: 23346ms

接下来我们使用TAGG模块来测试同样的执行8次斐波那契数组计算,看看成绩如何?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

function fibo (n) {

return n > 1 ? fibo(n - 1) + fibo(n - 2) : 1;

}

console.time('8 thread');

var numThreads= 8; //创建线程池,最大数为8

var threadPool= require('threads_a_gogo').createPool(numThreads).all.eval(fibo); //为线程池注册程序

var i=8;

var cb = function(err,data){ //注册线程执行完毕的回调函数

console.log(data);

if(!--i){

threadPool.destroy();

console.timeEnd('8 thread');

}

}

threadPool.any.eval('fibo(40)', cb); //开始向线程池中执行fibo(40)这个任务

  

threadPool.any.eval('fibo(40)', cb);

  

threadPool.any.eval('fibo(40)', cb);

  

threadPool.any.eval('fibo(40)', cb);

  

threadPool.any.eval('fibo(40)', cb);

  

threadPool.any.eval('fibo(40)', cb);

  

threadPool.any.eval('fibo(40)', cb);

  

threadPool.any.eval('fibo(40)', cb);

最重的结果:

1

2

3

4

5

6

7

8

9

165580141

165580141

165580141

165580141

165580141

165580141

165580141

165580141

8 thread: 9510ms

相比不使用多线程模型的node,使用了TAGG模块之后,我们在4CPU服务器上的测试结果要快上一倍还不止。

TAGG模块还有其他更多的功能,比如事件触发,平滑退出,查看线程工作状态等等,总之TAGG模块给node注入了新的活力,让node一直饱受诟病的处理cpu密集任务问题得到了一个妥善的解决,就算你不擅长c++代码,也能够轻松编写出多线程的真正的非阻塞node程序了。  

更多编程相关知识,请访问:编程教学!!

以上就是浅谈Nodejs如何进行多线程处理的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

浅谈nodejs获取参数的几种方法

2021年8个值得收藏的nodejs项目

如何使用nodejs实现路由功能

nodejs的npm常用命令集合

nodejs怎么创建文件并写入

node.js安装和配置环境以及部署项目的方法介绍(windows系统下)

nodejs安装和配置环境的方法介绍

详解nodejs中的阻塞和非阻塞

nodejs怎么运行js文件

浅谈npm邮箱验证问题的解决方法

更多相关阅读请进入《nodejs》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...