首页 > 解决方案 > 单线程应用程序如何成为异步 nodejs

问题描述

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

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

libuv与此有什么关系?

标签: javascriptnode.jslibuv

解决方案


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


推荐阅读