workLoopConcurrent
一句话结论:workLoopConcurrent 是并发渲染的执行循环:每做完一个工作单元就检查
shouldYield(),需要让出就暂停,等下一次调度继续。
1. 它与同步 workLoop 的差异
- 同步:一口气跑到完成(除非报错/挂起)
- 并发:在“安全点”暂停,避免长任务阻塞主线程
2. “安全点”是什么
- 典型边界:完成一个 Fiber 单元(begin/complete 的组合)之后
- 暂停时只保存离屏状态(workInProgress),不会影响已提交 UI
3. 你要强调的收益与代价
- 收益:输入更及时、掉帧更少
- 代价:可能重复 render(被插队/放弃后重做),但换来更好的交互体验