Node.js线程池混乱

Node.js使用线程池排队系统调用的事实是否会打败它的总体目的? 我的理解是,Node.js通过事件循环提供了纯粹的基于事件的代码,但是,如果每个事件启动都在幕后生成一个线程,那么它与apache有什么不同呢?线程阻塞呼叫? 我的意思是,如果像Apache这样的东西不使用线程池,但可能更有效,但似乎是相同的? 也可能有一些速度差异,由于JS执行比说php更快的事实…

有两个主要的原因,你可能需要node

  1. 性能

AFAIK node尽可能利用低级别的非阻塞API; 我将线程池视为某种使用的回退,当无阻塞原语根本不存在时。

有关更多信息,请参阅:

何时使用线程池?

关于node.js内部asynchronousI / O机制的困惑

  1. 没有multithreading

不仅仅是速度。 事件循环驱动的asynchronouscallback/ Promises / CSP是如何编写“并行运行任务”,但没有显式locking(而不是显式死锁和竞态条件)的代码。 许多尝试multithreading编程的人倾向于欣赏这些半新的范例。