i007.cc

i007.cc

优先队列-降维打击

CronTimer改造

最近用了下Python的定时器,还有epoll的一篇文章,感触很深,觉得它的设计很合理,是时候了,把CronTimer改造一下:

1.修改接口,AddTimer返回Timer对象

2.简化接口,Timer对象增加Cancel接口用于取消定时器,不用Mgr中的RemoveTimer取消。

3.优化性能,Mgr中使用std::map对到期时间进行排序,每次只用处理列表头部即可,可以做到O(1)时间复杂度的时间判断。std::map<time_t, std::list<std::shared_ptr<Timer>>> m_all_timers;

4.要增加作者版权信息

发表回复