javascript - 事件循环、libuv和v8引擎的关系

标签 javascript node.js v8 libuv

我正在学习 Node.js 的架构。我有以下问题。

  1. 事件循环是 libuv 还是 v8 的一部分?
  2. 事件队列是事件循环的一部分吗?事件队列是由 libuv 或 v8 引擎生成的还是事件循环本身?
  3. libuv和v8引擎有什么联系?
  4. 如果事件循环是单线程的,libuv 是否会创建多个线程来处理文件 I/O?
  5. 浏览器有事件循环机制还是只有 Node.js 有?

最佳答案

  1. 事件循环首先是一个高级概念,它是 JavaScript 编程模型的基础部分。实际上,每个 V8 嵌入器都需要实现一个事件循环。 V8 提供了一个默认实现,嵌入器可以替换或扩展它。

  2. 我不明白这个问题。 (我猜答案是"is",但“事件循环”和“事件队列”有什么区别?)

  3. 没有。 (除了 Node.js 同时使用两者。)

  4. 是的,事件循环是单线程的。

  5. 是的,浏览器也有事件循环(见问题 1)。

关于javascript - 事件循环、libuv和v8引擎的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49811043/

相关文章:

javascript - 我的创建角色命令仅创建一个名称为 "new role"的角色

javascript - 在nodejs中,同步调用async函数有没有更好的设计模式?

javascript - V8/JS 运行时 : how are JavaScript window functions available without prefix "window"

javascript - 存储图像最有效的方式是什么? HTML/CSS/JS

node.js - 按数组元素(文档)字段排序 - MongoDB/Mongoose

javascript - 获取输入中的值以进行自动完成

javascript - 直接返回 Promise 中的对象

javascript - 可用于 Windows 上 Chrome 的 --js-flags 列表?

javascript - JS 中是否有相当于 Python 的 .get() 的功能?

javascript - 如何让这个div上下滑动悬停效果?