nodejs如何做高并发多线程的么?

nodejs的引擎可以支持高并发请求

那么在实现上需不需要特别的代码处理?

另外nodejs来做大型网站后台是否合适?有没有需要注意的地方

谢谢

阅读 4k
2 个回答

问题不成立。

Node.js 的特性就是 单线程 异步 I/O,没有所谓的 多线程

如果利用 pm2 之类的 cluster 集群模式,是 多进程 而非 多线程

如果你知道的恰好多一些,知道有 threads_a_gogo 这个模块,那么它本质上是利用了 Linux 的系统调用 fork 来实现的,实质上还是 多进程(而且这个库作者都不推荐在生产环境中使用)。


感谢评论区 @阿蛇 的补充。

一时没想到还有 Workers 这种东西,浏览器倒是早就支持了,不过 Node 刚刚才在 v13 中把这个特性标记成 stable,目前是没见过哪个框架或是生产项目用这个特性的。

不过 Workers 的底层原理和其他语言中的多线程还是有不小区别的,而且也只适用于 CPU 密集型,对于 I/O 密集型反而会降低性能。(话说回来了,后端都用 Node 了,还能有啥是 CPU 密集的了?)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题