react scheduler原理简介

334 阅读1分钟

1646485115(1).jpg

分为两个阶段:

  1. schedule:选出当前最优先的工作,满足执行条件,去触发执行
  2. preform:执行

shouldYeild打断机制:

  • schedule,宏观打断,调度下一个任务时会判断是否在切片时间
  • preform:微观打断,任务里可以调用scheduler的shouldYeild方法进行微观打断。像fiber增量渲染就是引用了微观打断
  • schedule是异步执行的,每次执行都在一个切片时间内,超过时间会把接下来的任务交给下一个异步。中间就是把控制权交给主线程。

高优先级打断低优先级的例子

当一个正在执行低优先级任务因为切片时间被微观打断后,主线程插入了一个高优先级任务,接下来下一个异步任务会执行高优先级任务,低优先级任务当前的的状态会被保留,下次轮到时继续执行下去。

参考至:mp.weixin.qq.com/s?__biz=Mzk…