众所周知,nodejs 是单线程的,但是多线程的需求一直是有的,其实官方的 cluster 包可以让你‘多线程’(多进程)。
文档在这里: http://nodejs.cn/api/cluster.html
不要被误导,它不止可以用于 http。
你试着用 cluster 来实现一个简单的 demo,大概 10 分钟?的 demo。main 和 worker 进程互相沟通一下(发送一个回合的消息)
如果你做完 demo 后还觉得我是标题党,那么我,只能让你看下这个解释: https://github.com/dinsio/multi-process/blob/master/docs/why_nodejs_official_cluster_sucks_cn.md
![]() | 1 Jex 2019-08-10 22:44:13 +08:00 你的想法就像:「为什么是 File.write ?难道不应该是 writeToFile 吗?」 说起来都是 OOP 惹的祸 |
2 xiangwan OP 写 demo 才能切确的感受到这个标题 |
3 ochatokori 2019-08-10 23:29:15 +08:00 via Android 刚才第一次页面还在 再点进去一次怎么就 404 了 其实吧我觉得这个包也没有太大问题,可能我是 js 吹吧 第二个例子 worker.on 的回调方法不就是在 master 执行的吗,但是楼主的注释说是在子进程执行的? |
4 Windelight 2019-08-10 23:40:45 +08:00 via Android 我跟佛说........... 佛说好的........... 我跟佛说........... 佛说不行,只能.. 我又跟佛说........ 佛说不行........... ............................ ............................ 佛响应时间过长 |
![]() | 5 jecshcier 2019-08-10 23:45:08 +08:00 via iPhone 众所周知,cluster 是多进程。。而不是多线程 |
![]() | 6 lxrmido 2019-08-11 00:04:28 +08:00 众所周知,线程跟进程是差异很大的两个概念…… 最近被 worker 折磨得快要佛了的在此佛一下…… |
![]() | 7 jybox 2019-08-11 00:08:35 +08:00 |
![]() | 8 Trim21 2019-08-11 00:09:36 +08:00 via Android 链接 404 了 |
9 zbinlin 2019-08-11 00:12:08 +08:00 * nodejs 是多线程的,只是 js 是单线程的,而且现在也支持 js 多线程了 * 论命名的重要性 * 还是看英文的官方文档吧 |
10 Death 2019-08-11 00:26:40 +08:00 via Android ![]() 为什么感觉 lz 的这一段话有种机翻的感觉…… |
![]() | 11 ziiber 2019-08-11 01:02:23 +08:00 为什么我进这个帖子背景色是黑色的??? |
![]() | 12 POPOEVER 2019-08-11 01:42:44 +08:00 确实震惊了,404 |
![]() | 13 Hardo 2019-08-11 02:44:28 +08:00 via Android 为啥我看不懂楼主在说啥 |
![]() | 14 phoenixlzx 2019-08-11 02:51:07 +08:00 via iPhone 我怎么记得 cluster 这模块好多年前就有了? |
![]() | 15 dartabe 2019-08-11 03:16:59 +08:00 求科普下 为什么查阅资料 linux 下线程进程是一个东西??? |
![]() | 16 autogen 2019-08-11 03:24:51 +08:00 多进程要什么支持,直接多启动几十个就好了 |
![]() | 17 autogen 2019-08-11 03:26:24 +08:00 多进程要什么支持,直接多启动几十个就好了 nginx、lvs 用轮询就好了 |
![]() | 18 gramyang 2019-08-12 00:25:15 +08:00 via Android @Windelight 佛说:三天之内撒了你(心肺停止) 你 fatal 了。。。 |