[发明专利]定时器实现方法及装置在审
申请号: | 201210075719.2 | 申请日: | 2012-03-21 |
公开(公告)号: | CN103324469A | 公开(公告)日: | 2013-09-25 |
发明(设计)人: | 李红波 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 罗振安 |
地址: | 518000 广东省深*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 定时器 实现 方法 装置 | ||
1.一种定时器实现方法,其特征在于,所述方法包括:
将新建定时器按照触发时间由早到晚的顺序插入预先设置的定时器队列中进行存储,所述定时器具有自身的触发时间和回调方法;
获取当前在所述定时器队列中排在队首的定时器的触发时间和回调方法;
根据所述触发时间和回调方法开启计时线程,所述计时线程在所述触发时间指定的时刻自动调用所述回调方法并执行。
2.根据权利要求1所述的定时器实现方法,其特征在于,所述将新建定时器按照触发时间由早到晚的顺序插入预先设置的定时器队列中进行存储,具体包括:
获取一个新建定时器,所述新建定时器具有自身的触发时间和回调方法;
判断所述新建定时器的触发时间与所述定时器队列中已存储的每一个定时器的触发时间的早晚;
如果判断所述新建定时器的触发时间早于所述定时器队列中一部分定时器的触发时间,则将所述新建定时器存储入所述定时器队列时,存储于所述一部分定时器之前;
如果判断所述新建定时器的触发时间晚于所述定时器队列中另一部分定时器的触发时间,则将所述新建定时器存储入所述定时器队列时,存储于所述另一部分定时器之后。
3.根据权利要求1所述的定时器实现方法,其特征在于,所述根据所述触发时间和回调方法开启计时线程,所述计时线程在所述触发时间指定的时刻自动调用所述回调方法并执行之后,还包括:
从所述定时器队列中删除所述回调方法已执行的定时器;
继续执行获取当前在所述定时器队列中排在队首的定时器的触发时间和回调方法的步骤。
4.根据权利要求1所述的定时器实现方法,其特征在于,所述根据所述触发时间和回调方法开启计时线程,所述计时线程在所述触发时间指定的时刻自动调用所述回调方法并执行之后,还包括:
判断所述回调方法已执行的定时器的是否具有循环周期信息;
如果是,则获取所述循环周期信息中的循环周期;
将所述回调方法已执行的定时器的触发时间修改为:原触发时间加上所述循环周期;
将修改触发时间后的所述定时器重新插入所述定时器序列中进行存储。
5.根据权利要求1至4任一所述的定时器实现方法,其特征在于,所述方法还包括:
接收作用于所述定时器队列中的一个定时器的触发时间修改信号;
根据所述触发时间修改信号修改所述定时器的触发时间;
根据修改后的触发时间调整所述定时器在所述定时器队列中的位置以满足所述触发时间由早到晚的存储顺序。
6.一种定时器实现装置,其特征在于,所述装置包括:
队列管理模块,用于将新建定时器按照触发时间由早到晚的顺序插入预先设置的定时器队列中进行存储,所述定时器具有自身的触发时间和回调方法;
信息获取模块,用于获取当前在所述定时器队列中排在队首的定时器的触发时间和回调方法;
定时执行模块,用于根据所述触发时间和回调方法开启计时线程,所述计时线程在所述触发时间指定的时刻自动调用所述回调方法并执行。
7.根据权利要求6所述的定时器实现装置,其特征在于,所述队列管理模块包括:定时器获取单元、触发时间判断单元和定时器存储单元;
所述定时器获取单元,用于获取一个新建定时器,所述新建定时器具有自身的触发时间和回调方法;
所述触发时间判断单元,用于判断所述新建定时器的触发时间与所述定时器队列中已存储的每一个定时器的触发时间的早晚;
所述定时器存储单元,用于如果所述触发时间判断单元判断所述新建定时器的触发时间早于所述定时器队列中一部分定时器的触发时间,则将所述新建定时器存储入所述定时器队列时,存储于所述一部分定时器之前;
所述定时器存储单元,还用于如果所述触发时间判断单元判断所述新建定时器的触发时间晚于所述定时器队列中另一部分定时器的触发时间,则将所述新建定时器存储入所述定时器队列时,存储于所述另一部分定时器之后。
8.根据权利要求6所述的定时器实现装置,其特征在于,所述队列管理模块,还具体包括:定时器删除单元;
所述定时器删除单元,用于从所述定时器队列中删除所述回调方法已执行的定时器;
所述信息获取模块,还用于所述定时器删除单元删除所述回调方法已执行的定时器之后,继续获取当前在所述定时器队列中排在队首的定时器的触发时间和回调方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210075719.2/1.html,转载请声明来源钻瓜专利网。