优先级队列
一句话结论:优先级队列让系统总能先处理“更重要/更紧急”的任务;浏览器与 React 调度器都会用它来保证交互优先、避免饥饿。
1. 什么是优先级队列
- 取出元素时按“优先级”而不是按“先进先出”
- 常见实现:二叉堆(min-heap/max-heap),插入/取最值通常是
O(log n)
2. 在事件循环里的直觉
- 微任务通常比宏任务优先级更高(本轮结束前必须清空)
- 浏览器内部还会按任务来源/类型拆成不同队列(用户输入、计时器、网络等)
3. 与 React 调度的关系
- Scheduler 会把“带优先级/过期时间”的任务放入堆结构
- React 用 Lane/优先级把更新分层,优先处理输入等高优先级更新