首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

怎么设计数据结构使定时器处理更高效

2012-02-12 
如何设计数据结构使定时器处理更高效程序运行时将会产生大量的定时器(可能几十万个),如何设计数据结构来使

如何设计数据结构使定时器处理更高效
程序运行时将会产生大量的定时器(可能几十万个),如何设计数据结构来使定时器相关处理(启动/删除/超时判断)更高效,定时器精度并不要求太高,所以请各位大虾考虑一下如何组织结构即可。
例如:将定时器列表按照剩余时间从小到大排队(剩余时间相同的再排成一个小链表)。这样,启动的时候可以按照类似二分法的方法插入队列。判断是否超时的话,只需要顺序判断即可,若当前节点不超时,后面的肯定也不超时,就不用再判断了。

[解决办法]
每添加一个timer都二分插入没必要吧。
根据你的timer长短,设计N个池,比如10个池
第一个池是即将到期的,比如50ms内的,这个池内的timer是排序好的,添加到这个池的timer需要二分插入。后面N-1个池是不需要排序的,当时间到了第二个池时,再对这个池的timer做一次排序,同时处理最后一个池的timer,把时间长的timer移动到第一个池(此时第一个池已经空了)。
[解决办法]
http://www.cnblogs.com/owenliang/archive/2011/12/06/2277793.html

热点排行