中断条件:shouldYield
一句话结论:
shouldYield()用于判断“本时间片是否耗尽”;一旦需要让出主线程,React 会在安全点暂停 render,把控制权交还给浏览器。
1. shouldYield 在哪里用
- 并发 workLoop 会在处理完一个(或一小段)单元后检查
shouldYield() - 返回 true → 暂停本轮,等待下次调度继续
2. 它通常依据什么
performance.now()记录开始时间- 当前运行时长超过预设的时间片(例如几毫秒级)就让出
- 目的不是“卡到 16ms 才停”,而是更细粒度地避免长任务
3. 面试易错点
- “React 并发=多线程并行”:不对,还是单线程,只是可中断
- “中断会让 UI 处于半成品”:不会,render 中断不影响已提交的 UI