对时间轮而言,添加一个定时器的时间复杂度是O(1),删除一个定时器的时间复杂度也是O(1),执行一个定时器的时间复 杂度是O(n)。但实际上执行一个定时器任务的效率要比O(n)好得 多,因为时间轮将所有的定时器散列到了不同的链表上。时间轮的槽越 多,等价于散列表的入口(entry)越多,从而每条链表上的定时器数少。此外,我们的代码仅使用了一个时间轮。当使用多个轮子来实现时间轮时,执行一个定时器任务的时间复杂度将接近O(1)。
展开
评论