基于多队列的定时时间分解处理的定时器实现方法

文档序号:6516431阅读:310来源:国知局
基于多队列的定时时间分解处理的定时器实现方法
【专利摘要】本发明涉及一种基于多队列的定时时间分解处理的定时器实现方法,包括以下步骤:1)定时器注册:11)判断是否存在空闲定时器资源,若为是,执行步骤12),否则结束;12)将定时时间分别挂到对应的时间队列上;2)定时器超时扫描:根据时间队列顺序依次消耗定时时间。与现有技术相比,本发明具有采用多队列将定时时间分解处理,提高了多个定时扫描周期后准确性等优点。
【专利说明】基于多队列的定时时间分解处理的定时器实现方法
【技术领域】
[0001]本发明涉及一种定时器实现方法,尤其是涉及一种基于多队列的定时时间分解处理的定时器实现方法。
【背景技术】
[0002]用于实现不同的时间相关的功能的控制部件被称作定时器(Timer)。定时器模块或定时器部件通常包括一个或多个不同的定时器,这些定时器能够彼此独立地运行。可能的使用领域是脉冲发生器、时钟发生器、用于时间测量的单元和用于事件计数器的参考定时器。定时器原则上可以用软件或硬件来实现。进程中多个定时任务的实现,通常采用多个定时器来实现,多个定时扫描周期后存在时间准确性差等问题。

【发明内容】

[0003]本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于多队列的定时时间分解处理的定时器实现方法。
[0004]本发明的目的可以通过以下技术方案来实现:
[0005]一种基于多队列的定时时间分解处理的定时器实现方法,其特征在于,包括以下步骤:
[0006]I)定时器注册:
[0007]11)判断是否存在空闲定时器资源,若为是,执行步骤12),否则结束;
[0008]12)将定时时间分别挂到对应的时间队列上;
[0009]2)定时器超时扫描:根据时间队列顺序依次消耗定时时间。
[0010]所述的定时器的属性包括:
[0011]使用标记Use;
[0012]是否到时Arrived ;
[0013]定时器当前所在的时间队列Que ;
[0014]定时器时长CountlOOms ;
[0015]定时器在时间队列中的剩余时长Rest ;
[0016]定时器所在的10s—90s的队列QuelOs ;
[0017]定时器所在的100s—900s的队列QuelOOs ;
[0018]前面一个定时器Prev ;
[0019]后面一个定时器Next。
[0020]所述的时间队列的属性包括;
[0021]定时值CountlOOms ;
[0022]剩余时长Rest ;
[0023]定时器数目Count;
[0024]定时器头指针Head ;[0025]定时器尾指针Tail。
[0026]所述的时间队列为31队列,其中:
[0027]队列O:保留;
[0028]队列I?9:分别是I到9秒的时间队列;
[0029]队列10:保留;
[0030]队列11?19:分别是IOs到90s的时间队列;
[0031]队列20:保留;
[0032]队列21?29:分是IOOs到900s的时间队列;
[0033]队列30:保留。
[0034]与现有技术相比,本发明采用多队列将定时时间分解处理,提高了多个定时扫描周期后准确性,该技术灵活性高,可对定时器的属性进行扩展来达到灵活使用的目的。
【专利附图】

【附图说明】
[0035]图1为本发明定时器注册流程图;
[0036]图2为本发明定时器超时扫描流程图。
【具体实施方式】
[0037]下面结合附图和具体实施例对本发明进行详细说明。
[0038]实施例
[0039]以IOOms精度的定时为例,对本发明进行举例说明:
[0040]如图1和图2所示,一种基于多队列的定时时间分解处理的定时器实现方法,包括以下步骤:
[0041]I)定时器注册:
[0042]11)判断是否存在空闲定时器资源,若为是,执行步骤12),否则结束;
[0043]12)将定时时间分别挂到对应的时间队列上,以123s为例,定时器初始化时会分配到3个定时器时间队列上,队列3剩余时间30 (单位100ms),队列12剩余时间为200 (单位100ms),队列21剩余时间为1000(单位100ms),且当前的队列为队列3 ;
[0044]2)定时器超时扫描:根据时间队列顺序依次消耗定时时间,以定时器注册流程的123秒定时器说明,队列3上时间耗完后就将当前队列设为队列12,队列12上时间耗完后就将当前队列设为队列21,队列21上时间耗完后就定时器超时。
[0045]所述的定时器的属性包括:
[0046]使用标记Use;
[0047]是否到时Arrived ;
[0048]定时器当前所在的时间队列Que ;
[0049]定时器时长CountlOOms:
[0050]定时器在时间队列中的剩余时长Rest ;
[0051]定时器所在的10s—90s的队列QuelOs ;
[0052]定时器所在的100s—900s的队列QuelOOs ;
[0053]前面一个定时器Prev;[0054]后面一个定时器Next。
[0055]所述的时间队列的属性包括:
[0056]定时值CountlOOms ;
[0057]剩余时长Rest ;
[0058]定时器数目Count ;
[0059]定时器头指针Head ;
[0060]定时器尾指针Tail。
[0061]所述的时间队列为31队列,其中:
[0062]队列O:保留;
[0063]队列I?9:分别是I到9秒的时间队列;
[0064]队列10:保留;
[0065]队列11?19:分别是IOs到90s的时间队列;
[0066]队列20:保留;
[0067]队列21?29:分是IOOs到900s的时间队列;
[0068]队列30:保留。
【权利要求】
1.一种基于多队列的定时时间分解处理的定时器实现方法,其特征在于,包括以下步骤: 1)定时器注册: 11)判断是否存在空闲定时器资源,若为是,执行步骤12),否则结束; 12)将定时时间分别挂到对应的时间队列上; 2)定时器超时扫描:根据时间队列顺序依次消耗定时时间。
2.根据权利要求1所述的一种基于多队列的定时时间分解处理的定时器实现方法,其特征在于,所述的定时器的属性包括: 使用标记Use ; 是否到时Arrived ; 定时器当前所在的时间队列Que ; 定时器时长CountlOOms: 定时器在时间队列中的剩余时长Rest 定时器所在的IOs—90s的队列QuelOs ; 定时器所在的100s—900s的队列QuelOOs ; 前面一个定时器Prev: 后面一个定时器Next。
3.根据权利要求2所述的一种基于多队列的定时时间分解处理的定时器实现方法,其特征在于,所述的时间队列的属性包括: 定时值 CountlOOms ; 剩余时长Rest ; 定时器数目Count ; 定时器头指针Head ; 定时器尾指针Tail。
4.根据权利要求3所述的一种基于多队列的定时时间分解处理的定时器实现方法,其特征在于,所述的时间队列为31队列,其中: 队列O:保留; 队列I?9:分别是I到9秒的时间队列; 队列10:保留; 队列11?19:分别是IOs到90s的时间队列; 队列20:保留; 队列21?29:分是IOOs到900s的时间队列; 队列30:保留。
【文档编号】G06F9/46GK103617072SQ201310504642
【公开日】2014年3月5日 申请日期:2013年10月23日 优先权日:2013年10月23日
【发明者】管文新 申请人:上海寰创通信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1