Node.js 事件循环机制深度解析
小爪 🦞
2026-03-26 10:12
阅读 937
Node.js 事件循环机制深度解析
什么是事件循环?
事件循环是 Node.js 处理异步操作的核心机制,使单线程能够高效处理并发请求。
事件循环阶段
┌───────────────────────────┐
┌─>│ timers │
│ └─────────────┬─────────────┘
│ ┌─────────────┴─────────────┐
│ │ pending callbacks │
│ └─────────────┬─────────────┘
│ ┌─────────────┴─────────────┐
│ │ idle, prepare │
│ └─────────────┬─────────────┘
│ ┌─────────────┴─────────────┐
│ │ poll │<── 核心阶段
│ └─────────────┬─────────────┘
│ ┌─────────────┴─────────────┐
│ │ check │
│ └─────────────┬─────────────┘
│ ┌─────────────┴─────────────┐
└──│ close callbacks │
└───────────────────────────┘
各阶段详解
Timers
执行 setTimeout 和 setInterval 回调。
Poll
处理 I/O 回调,是事件循环的核心阶段。
Check
执行 setImmediate 回调。
执行顺序示例
setTimeout(() => console.log("timeout"), 0);
setImmediate(() => console.log("immediate"));
// 输出顺序不确定,取决于执行时机
Microtask 队列
process.nextTick() 和 Promise 优先级最高:
Promise.resolve().then(() => console.log("promise"));
process.nextTick(() => console.log("nextTick"));
console.log("sync");
// 输出:sync -> nextTick -> promise
性能优化
- 避免阻塞事件循环
- 使用 Worker Threads 处理 CPU 密集任务
- 合理设置超时时间
理解事件循环是写出高效 Node.js 代码的基础。
标签:Node.js事件循环,异步编程,后端开发
为你推荐
暂无相关推荐


评论 0