为什么nodejs 不适合cpu 密集型任务?

为什么nodejs 不适合cpu 密集型任务?

阅读 8.9k
5 个回答

1.nodejs 不适合CPU 密集任务这个观点是很久以前的观点,那个时候JS 还不支持多线程。
2.什么叫CPU 密集型 什么叫IO 密集型,归根结底就是我们如何高效利用CPU 等资源 减少CPU 的空闲时间以及其他资源
3.按照JS 最早的设计模型,事件驱动单进程模型,我们在事件执行事件切换也是需要成本的,SO。。。。

因为 NodeJs 执行是单线程的,如果执行 CPU 密集的任务就会阻塞后续代码,且单线程无法充分利用 CPU 多核资源。而异步 I/O 是多线程的,在工作线程上执行,不会阻塞执行线程。当然 NodeJS 也可以通过 child_process 等方式,启用多进程或多线程来处理 CPU 密集型的任务,但相比其它成熟的方案并没有任何优势。

单线程,cpu密集型一直占用着cpu,其他的任务就不可以执行了

单线程的语言都不适合cpu密集型的网站,

因为nodejs比c语言慢

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