EventLoop 的基本概念、经典面试题
时间: 2023-11-12 13:30:06 浏览: 168
EventLoop 是指事件循环,是 Node.js 中实现异步 I/O 的核心机制之一。它主要通过监听事件队列中的事件来完成异步任务的执行,从而实现非阻塞 I/O 操作。
在 Node.js 中,每个异步 I/O 操作都会被封装成一个事件,这些事件会被放入事件队列中,EventLoop 会不断地监听事件队列中是否有事件需要处理。当有事件需要处理时,EventLoop 会将该事件取出并交给对应的回调函数执行。 因为 Node.js 是单线程的,所以 EventLoop 是单线程的,它会按照一定的顺序依次执行事件的回调函数,这就保证了事件的顺序性。
经典面试题就是:EventLoop 的执行顺序是什么?
EventLoop 的执行顺序可以分为以下几个步骤:
1. 执行同步代码,将异步 I/O 操作封装成事件并放入事件队列中。
2. 当事件队列中有事件时,EventLoop 会取出事件并执行对应的回调函数。
3. 回调函数执行完毕后,如果有必要,会再次将异步 I/O 操作封装成事件并放入事件队列中。
4. 重复步骤 2 和步骤 3,直到事件队列中没有事件需要处理。
5. EventLoop 进入休眠状态,等待新的事件进入事件队列。
阅读全文