【问题标题】:Confusion on Node.js thread poolNode.js 线程池的困惑
【发布时间】:2016-02-16 19:21:18
【问题描述】:

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

【问题讨论】:

    标签: node.js events


    【解决方案1】:

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

    1. 性能

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

    有关详细信息,请参阅:

    When is the thread pool used?

    Confusion about node.js internal asynchronous I/O mechanism

    1. 没有多线程

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-02
      • 1970-01-01
      • 1970-01-01
      • 2016-09-15
      • 1970-01-01
      相关资源
      最近更新 更多