javascript - JavaScript 事件循环和 Node.js 事件循环有什么区别?

标签 javascript node.js event-loop

在 JavaScript 中,事件循环用于引擎中。这是一个图表来说明它 article .


(来源:mybalsamiq.com)

对于 Node.js,事件循环也在这里实现。引自此question .

The Node.js event loop runs under a single thread, this means the application code you write is evaluated on a single thread. Nodejs itself uses many threads underneath trough libuv, but you never have to deal with with those when writing nodejs code.

但是,对于我来说,关于 node.js 事件循环仍然是抽象的。

  • 有没有图片介绍的更清楚些?
  • 这两个事件循环有何不同?

最佳答案

Nodejs 事件循环实现不同于基于浏览器的事件循环。

这是 Nodejs 社区中一个巨大的困惑点。

虽然 Nodejs 使用 Google V8 作为其运行时,但它不使用 V8 来实现事件循环。

Nodejs 使用 Libuv 库(用 C 语言编写)来实现事件循环。

上面的图表适用于 JS 事件循环,与 Nodejs 事件循环不同。

为了完全理解 Nodejs 事件循环,您应该学习三个引用资料:

  1. https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/
  2. http://docs.libuv.org/en/v1.x/design.html
  3. https://www.youtube.com/watch?v=sGTRmPiXD4Y

关于javascript - JavaScript 事件循环和 Node.js 事件循环有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31582672/

相关文章:

javascript - 如何在具有相同类名的页面上的不同部分上运行相同的函数

node.js - AWS,NodeJS - 将应用程序连接到另一个 EC2 实例上的 Mongodb

javascript - 'click' 之类的事件是宏任务吗?

javascript - 每个事件循环处理多少个 JS 语句?

javascript - 最小化和关闭按钮在 Electron 应用程序中不起作用

javascript - 帮助理解 jQuery

javascript - 如何停止在 Kendo Grid 中添加空行?

node.js - 如何在 Electron 更新程序下载过程中在窗口中显示进度条

node.js - Express 控制台显示许多请求

python - 尝试使用 aiohttp-cors 设置 connexion.AioHttpApp() 来实现异步路由失败