版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

单个槽上的定时器链表仍然是按升序链表来组织的,只不过前后两个节点的时间差一定是N*si的整数倍。注意这里前后节点的时间差不一定是1个N*si,也有可能是好几个N*si,所以不能通过定时器所在的槽位和链表位置直接推算出定时器的超时时间。或者换个说法,表盘指针转到某个槽时,仍需要按升序链表的方式遍历这个链表的节点,并判断是否超时。

时间堆

sylar定时器设计

sylar的定时器依赖IO协程调度模块,通过多继承的方式给IO协程调度模块增加定时器管理功能,相当于给IOManager外挂了一个定时器管理器。

...