gpt4 book ai didi

node.js - Node.js 线程池的困惑

转载 作者:太空宇宙 更新时间:2023-11-04 00:44:22 25 4
gpt4 key购买 nike

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

最佳答案

有两个主要原因,您可能需要 Node :

  1. 性能

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

有关详细信息,请参阅:

When is the thread pool used?

Confusion about node.js internal asynchronous I/O mechanism

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

    关于node.js - Node.js 线程池的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35428429/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com