为什么nodejs 不适合cpu 密集型任务?
因为 NodeJs 执行是单线程的,如果执行 CPU 密集的任务就会阻塞后续代码,且单线程无法充分利用 CPU 多核资源。而异步 I/O 是多线程的,在工作线程上执行,不会阻塞执行线程。当然 NodeJS 也可以通过 child_process 等方式,启用多进程或多线程来处理 CPU 密集型的任务,但相比其它成熟的方案并没有任何优势。
5 回答4.8k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
2 回答1.8k 阅读✓ 已解决
5 回答1.9k 阅读
2 回答1.4k 阅读✓ 已解决
3 回答2k 阅读
1 回答3.3k 阅读
1.nodejs 不适合CPU 密集任务这个观点是很久以前的观点,那个时候JS 还不支持多线程。
2.什么叫CPU 密集型 什么叫IO 密集型,归根结底就是我们如何高效利用CPU 等资源 减少CPU 的空闲时间以及其他资源
3.按照JS 最早的设计模型,事件驱动单进程模型,我们在事件执行事件切换也是需要成本的,SO。。。。