Notes

中断条件:shouldYield

一句话结论:shouldYield() 用于判断“本时间片是否耗尽”;一旦需要让出主线程,React 会在安全点暂停 render,把控制权交还给浏览器。

1. shouldYield 在哪里用

  • 并发 workLoop 会在处理完一个(或一小段)单元后检查 shouldYield()
  • 返回 true → 暂停本轮,等待下次调度继续

2. 它通常依据什么

  • performance.now() 记录开始时间
  • 当前运行时长超过预设的时间片(例如几毫秒级)就让出
  • 目的不是“卡到 16ms 才停”,而是更细粒度地避免长任务

3. 面试易错点

  • “React 并发=多线程并行”:不对,还是单线程,只是可中断
  • “中断会让 UI 处于半成品”:不会,render 中断不影响已提交的 UI

关联阅读

cd ..