[发明专利]定时器实现方法及装置在审
申请号: | 201210075719.2 | 申请日: | 2012-03-21 |
公开(公告)号: | CN103324469A | 公开(公告)日: | 2013-09-25 |
发明(设计)人: | 李红波 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 罗振安 |
地址: | 518000 广东省深*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 定时器 实现 方法 装置 | ||
技术领域
本发明涉及计算机领域,特别涉及一种定时器实现方法及装置。
背景技术
诸如闹钟、日程提醒之类的包含有定时触发逻辑的应用程序是使用较为广泛的一种应用程序。在这类应用程序中,实现定时触发预定操作的部分可以统称为定时器。
现有技术中已经存在有一种定时器实现方法,该定时器实现方法主要包括:在需要一个定时器时,根据该定时器的触发时间和回调方法来启用一个计时线程,该计时线程可以在这个触发时间所指定的时刻自动调用回调方法。其中,触发时间是用户或者应用程序希望定时器触发预定操作的时间,比如,一个闹钟应用程序中的定时器的触发时间可以是早上6:00。而回调方法可以认为是被定时触发的预定操作的函数接口,比如,一个闹钟应用程序中的定时器的回调方法可以是一个用于响铃10秒的函数的函数接口。当不同的应用程序需要定时器时,也即需要不止一个定时器时,系统会分别开启对应于所需定时器个数的多个计时线程来分别计时,以实现各个定时器。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:随着定时器的增加,系统开启的计时线程也会随之增加,越来越多的计时线程将会占用较多的系统资源,导致系统的性能下降和耗电量变大等缺点。
发明内容
为了减少多个定时器同时启用计时线程而占用较多系统资源的问题,本发明实施例提供了一种定时器实现方法及装置。所述技术方案如下:
根据本发明的一个方面,本发明实施例提供了一种定时器实现方法,所述方法包括:
将新建定时器按照触发时间由早到晚的顺序插入预先设置的定时器队列中进行存储,所述定时器具有自身的触发时间和回调方法;
获取当前在所述定时器队列中排在队首的定时器的触发时间和回调方法;
根据所述触发时间和回调方法开启计时线程,所述计时线程在所述触发时间指定的时刻自动调用所述回调方法并执行。
进一步地,所述将新建定时器按照触发时间由早到晚的顺序插入预先设置的定时器队列中进行存储,具体包括:
获取一个新建定时器,所述新建定时器具有自身的触发时间和回调方法;
判断所述新建定时器的触发时间与所述定时器队列中已存储的每一个定时器的触发时间的早晚;
如果判断所述新建定时器的触发时间早于所述定时器队列中一部分定时器的触发时间,则将所述新建定时器存储入所述定时器队列时,存储于所述一部分定时器之前;
如果判断所述新建定时器的触发时间晚于所述定时器队列中另一部分定时器的触发时间,则将所述新建定时器存储入所述定时器队列时,存储于所述另一部分定时器之后。
进一步地,所述根据所述触发时间和回调方法开启计时线程,所述计时线程在所述触发时间指定的时刻自动调用所述回调方法并执行之后,还包括:
从所述定时器队列中删除所述回调方法已执行的定时器;
继续执行获取当前在所述定时器队列中排在队首的定时器的触发时间和回调方法的步骤。
进一步地,所述根据所述触发时间和回调方法开启计时线程,所述计时线程在所述触发时间指定的时刻自动调用所述回调方法并执行之后,还包括:
判断所述回调方法已执行的定时器的是否具有循环周期信息;
如果是,则获取所述循环周期信息中的循环周期;
将所述回调方法已执行的定时器的触发时间修改为:原触发时间加上所述循环周期;
将修改触发时间后的所述定时器重新插入所述定时器序列中进行存储。
进一步地,所述方法还包括:
接收作用于所述定时器队列中的一个定时器的触发时间修改信号;
根据所述触发时间修改信号修改所述定时器的触发时间;
根据修改后的触发时间调整所述定时器在所述定时器队列中的位置以满足所述触发时间由早到晚的存储顺序。
根据本发明的另一方面,本发明实施例还提供一种定时器实现装置,所述装置包括:
队列管理模块,用于将新建定时器按照触发时间由早到晚的顺序插入预先设置的定时器队列中进行存储,所述定时器具有自身的触发时间和回调方法;
信息获取模块,用于获取当前在所述定时器队列中排在队首的定时器的触发时间和回调方法;
定时执行模块,用于根据所述触发时间和回调方法开启计时线程,所述计时线程在所述触发时间指定的时刻自动调用所述回调方法并执行。
进一步地,所述队列管理模块包括:定时器获取单元、触发时间判断单元和定时器存储单元;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210075719.2/2.html,转载请声明来源钻瓜专利网。