node的事件循环 和 浏览器事件循环有什么区别?
时间: 2023-11-26 18:04:29 浏览: 96
Node.js 和浏览器都使用事件循环机制来处理异步操作,但它们的实现方式有所不同。
在浏览器中,事件循环被称为 Event Loop,它运行在主线程中,主要负责处理 DOM 事件、鼠标点击、键盘输入等浏览器事件。浏览器的 Event Loop 是单线程的,意味着只有一个线程在处理事件,所以如果某个事件执行时间过长,会导致页面卡顿。
而在 Node.js 中,事件循环被称为 Event Loop,它运行在单独的线程中,主要负责处理 I/O 操作、网络请求等异步任务。Node.js 的 Event Loop 是基于 libuv 库实现的,它采用了多线程的方式来执行异步任务,避免了长时间的阻塞。
另外,Node.js 的 Event Loop 也包含了不同的阶段(如 timers、I/O callbacks、idle、prepare、poll、check、close callbacks 等),每个阶段会执行不同的任务。在每个阶段结束后,Event Loop 会检查是否有 setImmediate 回调函数需要执行,如果有,则会立即执行。这也是 Node.js 和浏览器 Event Loop 的一个区别。
阅读全文
相关推荐


















