本发明专利技术实施例提供了种定时器的控制方法、装置及电子设备。所述方法包括:在每一帧周期检测定时器的执行时间;其中,每一所述定时器包括用于在所述执行时间执行的回调方法;在检测到第一目标定时器的情况下,执行所述第一目标定时器的回调方法;其中,所述第一目标定时器为执行时间早于或等于当前时间的定时器。本发明专利技术实施例不仅实现了在定时器到期的情况下执行相应的回调方法;同时由于不再使用CPU时钟进行计时,避免了长期计时的场景下定时器延迟过大的问题。迟过大的问题。迟过大的问题。
【技术实现步骤摘要】
定时器的控制方法、装置及电子设备
[0001]本专利技术涉及计算机
,尤其涉及一种定时器的控制方法、装置及电子设备。
技术介绍
[0002]定时器是通信协议正常运行的基本要素之一,主要用于各种定时任务。其中,Java中的定时器(timer)是应用程序中的一种定时工具,用来在后台线程计划执行指定任务。例如某一应用程序,如果这个应用程序每天生成的日志数据很多。为避免积累过多的日志数据,需要隔一段时间删除一次日志数据,那么就需要用到定时器。
[0003]目前,在开发过程中通常使用编程语言提供的原生定时器,利用中央处理器(central processing unit,简称CPU)自带的时钟,即CPU时钟进行计时。
[0004]然而,由于CPU时钟本身的限制,在CPU时钟进行长期计时的场景下使得定时器将产生较大的延迟。
技术实现思路
[0005]鉴于上述问题,提出了本专利技术实施例以便提供一种克服上述问题或者至少部分地解决上述问题的定时器的控制方法、装置及电子设备。
[0006]第一方面,本专利技术实施例提供了一种定时器的控制方法,所述方法包括:
[0007]在每一帧周期检测定时器的执行时间;其中,每一所述定时器包括用于在所述执行时间执行的回调方法;
[0008]在检测到第一目标定时器的情况下,执行所述第一目标定时器的回调方法;其中,所述第一目标定时器为执行时间早于或等于当前时间的定时器。
[0009]可选地,所述在每一帧周期检测定时器的执行时间,包括:<br/>[0010]在每一帧周期检测定时器队列中定时器的执行时间;其中,所述定时器队列包括多个定时器;
[0011]在检测到第一目标定时器的情况下,所述方法还包括:
[0012]将所述第一目标定时器从所述定时器队列中移除。
[0013]可选地,在每一帧周期检测定时器队列中定时器的执行时间之前,所述方法还包括:
[0014]在基于目标回调方法注册定时器的情况下,确定目标时间;其中,所述目标时间为执行所述目标回调方法的时间;
[0015]在所述定时器队列中存在执行时间与所述目标时间相同的第二目标定时器的情况下,将所述目标回调方法确定为所述第二目标定时器新增的回调方法。
[0016]可选地,所述定时器队列中的多个定时器按照执行时间从早到晚的顺序排列。
[0017]可选地,在所述第一目标定时器的回调方法为周期性执行的方法的情况下,所述执行所述第一目标定时器的回调方法,包括:
[0018]执行一次所述第一目标定时器的回调方法;
[0019]在所述定时器队列中添加新定时器,并将所述新定时器的执行时间设置为计算时间;其中,所述计算时间为所述第一目标定时器当前的执行时间累加至少一个执行周期得到的晚于当前时刻的时间,且当前时刻到所述计算时间之间的时长小于或等于一个所述执行周期。
[0020]可选地,所述第一目标定时器的回调方法的数量为多个,且所述第一目标定时器的多个回调方法位于同一目标方法队列中;
[0021]所述执行所述第一目标定时器的回调方法,包括:
[0022]每次执行所述目标方法队列中的第一个回调方法,且在每次执行完一个回调方法后将本次已执行的回调方法从所述目标方法队列中移除,直至所述目标方法队列为空。
[0023]第二方面,本专利技术实施例还提供一种定时器的控制装置,所述装置包括:
[0024]检测模块,用于在每一帧周期检测定时器的执行时间;其中,每一所述定时器包括用于在所述执行时间执行的回调方法;
[0025]执行模块,用于在检测到第一目标定时器的情况下,执行所述第一目标定时器的回调方法;其中,所述第一目标定时器为执行时间早于或等于当前时间的定时器。
[0026]可选地,所述执行模块,具体用于在每一帧周期检测定时器队列中定时器的执行时间;其中,所述定时器队列包括多个定时器;
[0027]所述装置还包括:
[0028]移除模块,用于将所述第一目标定时器从所述定时器队列中移除。
[0029]第三方面,本专利技术实施例还提供一种电子设备,该电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的定时器的控制方法中的步骤。
[0030]第四方面,本专利技术实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的定时器的控制方法中的步骤。
[0031]在本专利技术实施例中,在每一帧周期检测定时器的执行时间,其中,定时器包括回调方法,执行时间为执行定时器的回调方法的时间,该执行时间为时间点而非时长。基于定时器的执行时间,可以确定执行时间早于或等于当前时间的第一目标定时器,即到期的定时器。进而在在检测到第一目标定时器的情况下,执行所述第一目标定时器的回调方法。其不仅实现了在定时器到期的情况下执行相应的回调方法;同时由于不再使用CPU时钟进行计时,避免了长期计时的场景下定时器延迟过大的问题。
附图说明
[0032]为了更清楚地说明本专利技术实施例的技术方案,下面将对本专利技术实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0033]图1为本专利技术实施例提供的定时器的控制方法的步骤流程图;
[0034]图2为本专利技术实施例提供的注册定时器的步骤流程图;
[0035]图3为本专利技术实施例提供的定时器的控制方法的实际应用流程图;
[0036]图4为本专利技术实施例提供的定时器的控制装置的结构框图;
[0037]图5为本专利技术实施例提供的电子设备的结构框图。
具体实施方式
[0038]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0039]应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本专利技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
[0040]在本专利技术的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本专利技术实施例的实施过程构成任何限定。
[0041]参见图1,本专利技术实施例提供了一种定时器的控制方法,该方法可以包括:
[0042]步骤101:在每一帧周期检测定时器的执行时间。
[0043]本步骤中,帧本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种定时器的控制方法,其特征在于,所述方法包括:在每一帧周期检测定时器的执行时间;其中,每一所述定时器包括用于在所述执行时间执行的回调方法;在检测到第一目标定时器的情况下,执行所述第一目标定时器的回调方法;其中,所述第一目标定时器为执行时间早于或等于当前时间的定时器。2.根据权利要求1所述的方法,其特征在于,所述在每一帧周期检测定时器的执行时间,包括:在每一帧周期检测定时器队列中定时器的执行时间;其中,所述定时器队列包括多个定时器;在检测到第一目标定时器的情况下,所述方法还包括:将所述第一目标定时器从所述定时器队列中移除。3.根据权利要求2所述的方法,其特征在于,在每一帧周期检测定时器队列中定时器的执行时间之前,所述方法还包括:在基于目标回调方法注册定时器的情况下,确定目标时间;其中,所述目标时间为执行所述目标回调方法的时间;在所述定时器队列中存在执行时间与所述目标时间相同的第二目标定时器的情况下,将所述目标回调方法确定为所述第二目标定时器新增的回调方法。4.根据权利要求2所述的方法,其特征在于,所述定时器队列中的多个定时器按照执行时间从早到晚的顺序排列。5.根据权利要求2所述的方法,其特征在于,在所述第一目标定时器的回调方法为周期性执行的方法的情况下,所述执行所述第一目标定时器的回调方法,包括:执行一次所述第一目标定时器的回调方法;在所述定时器队列中添加新定时器,并将所述新定时器的执行时间设置为计算时间;其中,所述计算时间为所述第一目标定时器的执行时间累加至少一个执行周期得到的晚于当前时...
【专利技术属性】
技术研发人员:莫日根,
申请(专利权)人:北京五八信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。