Node.js线程池上的混乱



Node.js使用线程池对系统调用进行排队的事实不是破坏了它的总体目的吗?我的理解是,Node.js 通过事件循环提供纯粹基于事件的代码,但是,如果每个事件都在后台生成一个线程,那么它与 apache 有什么不同,它也生成用于阻止调用的线程?我的意思是,如果像 apache 这样的东西不使用线程池,它可能会更有效率,但除此之外它看起来是一样的?由于JS的执行速度比php快,因此也可能存在一些速度差异。

有两个

主要原因,您可能需要node

  1. 性能

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

有关详细信息,请参阅:

何时使用线程池?

对节点.js内部异步 I/O 机制的混淆

  1. 无多线程

不仅仅是速度。事件循环驱动的异步回调/承诺/CSP是一种如何编写代码的方法,它"并行运行任务",但没有显式锁(也没有那么明确的死锁和竞争条件(。许多尝试过多线程编程的人倾向于欣赏这些半新的范式。

最新更新