时间片轮转简称为时间轮,可以把时间轮作为一个表盘来进行理解,在表盘上有多个刻度,每个刻度之间有一定的距离,每个刻度都可能指向多个timer。通过一定的哈希散列算法将timer添加到某个刻度所对应的组中。每隔interval的间隔时间,时间轮进行转动,取出刻度所标记的timer集合进行处理。
时间片轮转算法如上图所示,假设一个格子为1秒,整个一圈表示的时间为8秒,此时需要添加5秒后执行的任务,则此时改任务一个放到第(0+5=5)的格子内,如果此时添加9秒后执行任务,此时该任务应该等转完一圈后round为1 放到标号为1格子中,指针每转动一个一格,获取当前round为0的任务执行,格子上的其他任务round减1 。
相关代码更新中…