【问题标题】:How a single threaded application can be asynchorous nodejs [duplicate]单线程应用程序如何异步节点js [重复]
【发布时间】:2020-02-19 05:52:00
【问题描述】:

Node js 是一个单线程应用程序,即使它执行异步操作,我对此的初步理解是这样的 “事件循环在用户代码的单独线程中运行。用户的 JavaScript 代码(用户空间代码)运行在一个主线程中,另一个运行事件循环。每次异步操作发生时,主线程都会将工作交给事件循环线程,一旦完成,事件循环线程会ping主线程执行回调。”这篇文章向我解释了这是错误的。 https://www.freecodecamp.org/news/walking-inside-nodejs-event-loop-85caeca391a9/

另外,我看到在第一部分执行后有一些代码返回结果,即使该部分是在第一部分之后调用的。我在这里感到非常困惑,有人可以帮助我吗?

libuv 与此有什么关系?

【问题讨论】:

  • 也许这些关于该主题的现有 Stack Overflow 帖子之一会有所帮助? :1234

标签: javascript node.js libuv


【解决方案1】:

单线程意味着事件队列在单线程中运行。在后台还有其他线程运行诸如 IO 之类的作业。他们有一个线程池,但作为开发人员,您对它的内部不感兴趣。这简化了应用程序开发人员对阻塞 IO 任务的处理。您只需发送一个请求并注册您的任务结果并在回调中运行您的代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-19
    • 2022-01-23
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 2020-03-30
    • 1970-01-01
    • 2011-12-30
    相关资源
    最近更新 更多