NodeJS事件循环
时间: 2024-06-21 20:03:07 浏览: 155
JS 事件循环(Event Loop)
Node.js 的事件循环是其核心架构之一,它使得基于单线程的JavaScript能够处理大量并发I/O操作。事件循环是一种机制,它负责监听特定的事件,如网络请求、定时器到期或文件系统变化,然后按照一定的顺序执行相应的回调函数。
以下是事件循环的主要组成部分:
1. **检查队列(Event Queue)**:Node.js有一个事件队列,用于存储所有待处理的事件和回调函数。
2. **事件处理器(Event Handler)**:这是一系列函数,它们负责读取事件队列中的事件并执行相应的操作。
3. **调用栈(Call Stack)**:用于执行同步代码,当没有I/O操作可做时,Node会执行同步代码直到调用栈清空。
4. **轮询(Polling)**:事件循环会不断地检查是否有新的事件到达,如果没有,它会短暂地睡眠,然后再次检查。
5. **定时器和周期性任务**:Node提供了`setImmediate`和`setTimeout`函数,它们会被添加到事件循环中特定的地方,确保在适当的时间执行。
6. **I/O触发器(I/O Completion Ports, ICPs)**:Node使用这些机制来高效地处理多个I/O操作,比如网络连接和文件读写。
阅读全文