定时器的处理方法及装置制造方法及图纸

技术编号:8714035 阅读:190 留言:0更新日期:2013-05-17 17:48
本申请公开了一种定时器的处理方法及装置,其中,该定时器的处理方法包括:将定时器事件的触发时间划分成多个时间段,其中,每一个所述时间段对应于一个哈希值;将触发时间在同一个时间段上的定时器事件插入到同一个链表中;以及将各个所述链表中的定时器事件映射到哈希表中,其中,每一个定时器事件在哈希表中对应地存储有一个哈希值以及该定时器事件所在的链表的标识。本申请解决了现有技术中定时器的处理方式系统开销比较大的问题,实现了减小处理定时器事件的系统开销的技术效果。

【技术实现步骤摘要】
定时器的处理方法及装置
本申请涉及数据处理领域,具体而言,涉及一种定时器的处理方法及装置。
技术介绍
随着互联网技术的发展,海量元素定时器得到越来越多的应用。这里,首先描述一下关于海量元素定时器的几个基本概念:1)定时器是指在指定的时间点或者指定的时间范围内触发预先设定好的事件的硬件或者软件的具体实现;定时器事件是指,需要在某个时间点或者时间范围内,做某件事情的一个数据结构实体;海量元素是指大量的需要触发的事件,例如百万以上的级别;海量元素定时器是指,在指定的时间点或者指定的时间范围内触发预先设定好的海量元素的硬件或者软件的具体实现。在现有技术中,从操作系统底层到应用层,有很多种方法实现海量元素定时器。但是,这些方法只适合于数据量不大,时间范围比较连续的情况,对于海量元素且时间分布离散的定时器,现有技术中缺少比较好的实现方法。例如,在现有技术中存在无序链表、有序链表和时间轮等几种方案,以下分别介绍。1)无序链表方案:按照创建顺序,把事件元素用链表连接起来,不停遍历链表,查找到达发生时间点的事件元素并处理。在该种实现方式中,由于在链表中事件是无序排列,所以要判断哪些事件到了触发点,必须要遍历所有元素,假设当前有500万个事件元素在链表中,从定时器事件的触发时间到达至执行该定时器事件的时间要求不超过1秒(即,定时器事件精确度要求为1秒),那么遍历将会导致CPU处理负荷飙升,大幅增加系统负载。2)有序链表方案:按照事件的发生时间顺序,把事件元素用一个有序的链表连接起来,查找到达发生时间点的事件元素并处理。该方案是对无序链表实现的改进。然而,该种实现方式虽然对链表做到了有序排列,降低了查找开销,但是对于插入元素却带来了额外的开销,因为每次插入需要先查找在有序链表中的插入点,随着元素的增多这个开销会增大,影响处理效率。3)时间轮方案:把时间按照一定的间隔划分,并预先为每个时间段划分好存储空间,把事件元素按照发生时间分别存储到对应时间段的存储空间,当到达某个时间轮范围时,取出这一个轮所包含的所有事件元素。该时间轮的实现方式对于时间范围分布比较均匀的事件元素比较合适,但对于时间分布很离散的事件元素则不适合,因为时间轮的实现,需要分配连续的空间,而如果是离散的时间分布,则此种方式会大量浪费内存资源。因此,针对相关技术中定时器的处理方式系统开销比较大的问题,目前尚未提出有效的解决方案。
技术实现思路
针对现有技术中定时器的处理方式系统开销比较大的问题,本申请的主要目的在于提供一种定时器的处理方法及装置,以解决上述问题。为了实现上述目的,根据本申请的一个方面,提供一种定时器的处理方法,其包括:将定时器事件的触发时间划分成多个时间段,其中,每一个所述时间段对应于一个哈希值;将触发时间在同一个时间段上的定时器事件插入到同一个链表中;以及将各个所述链表中的定时器事件映射到哈希表中,其中,每一个定时器事件在哈希表中对应地存储有一个哈希值以及该定时器事件所在的链表的标识。优选地,所述将各个所述链表中的定时器事件映射到哈希表中之后,所述定时器的处理方法还包括:获取当前时间段所对应的当前哈希值;在所述哈希表中查找与所述当前哈希值对应的链表的标识;执行查找到的链表的标识指示的链表中的定时器事件。优选地,所述执行查找到的链表的标识指示的链表中的定时器事件的步骤包括:创建任务队列;将查找到的链表中的定时器事件加入所述任务队列中;执行所述任务队列中的定时器事件。优选地,所述将查找到的链表中的定时器事件加入所述任务队列中的步骤包括:创建调度线程;所述调度线程判断是否存在所述查找到的链表中的定时器事件;在判断出存在所述查找到的链表中的定时器事件时,所述唤醒的调度线程将查找到的链表中的定时器事件加入所述任务队列中。优选地,所述执行任务队列中的定时器事件的步骤包括:任务线程执行任务队列中的定时器事件。优选地,所述将触发时间在同一个时间段上的定时器事件插入到同一个链表中的步骤具体包括:判断待处理的定时器事件的触发时间所处的时间段;获取所述触发时间所处的时间段对应的哈希值;查找与所获取到的哈希值对应的链表;将所述待处理的定时器事件插入到所查找到的链表中。优选地,所述查找与所获取到的哈希值对应的链表的步骤包括:在查找不到与所获取到的哈希值对应的链表时,创建与所获取到的哈希值对应的链表,并将所创建的链表作为所述查找到的链表。优选地,所述将触发时间在同一个时间段上的定时器事件插入到同一个链表中的步骤包括:按照触发时间的先后顺序在同一个时间段上将触发时间在该同一个时间段上的定时器事件插入到同一个链表中。为了实现上述目的,根据本申请的另一方面,还提供一种定时器的处理装置,其包括:划分单元,用于将定时器事件的触发时间划分成多个时间段,其中,每一个所述时间段对应于一个哈希值;插入单元,用于将触发时间在同一个时间段上的定时器事件插入到同一个链表中;映射单元,用于将各个所述链表中的定时器事件映射到哈希表中,其中,每一个定时器事件在哈希表中对应地存储有一个哈希值以及该定时器事件所在的链表的标识。优选地,所述定时器的处理装置还包括:获取单元,用于在将各个所述链表中的定时器事件映射到哈希表中之后,获取当前时间段所对应的当前哈希值;查找单元,用于在所述哈希表中查找与所述当前哈希值对应的链表的标识;执行单元,用于执行查找到的链表的标识指示的链表中的定时器事件。在本申请中,由于将各个所述链表中的定时器事件映射到哈希表中,其中,每一个定时器事件在哈希表中对应地存储有一个哈希值以及该定时器事件所在的链表的标识,因此,在查找定时器事件时,对于属于同一个哈希值的定时器事件,可以仅执行一次查找操作即得到对应于哈希值的链表,并得到该链表下的所有定时器事件,从而大大降低了比较操作执行的次数,解决了现有技术中定时器的处理方式系统开销比较大的问题,实现了减小处理定时器事件的系统开销的技术效果。附图说明构成本申请的一部分的附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是根据本申请实施例的定时器的处理方法的一种优选地流程图;图2是根据本申请实施例的对新增定时器事件的定时器的处理方法的一种优选地流程图;图3是根据本申请实施例的创建哈希表的一种优选地流程示意图;图4是根据本申请实施例的创建由定时器事件组成的任务队列的一种优选地流程示意图;图5是根据本申请实施例的任务线程对任务队列进行调度的一种优选地流程图;图6是根据本申请实施例的执行定时器事件的一种优选地流程图;图7是根据本申请实施例的定时器的处理装置的一种优选地示意图;图8是根据本申请实施例的定时器的处理装置另一种优选地示意图;图9是根据本申请实施例的定时器的处理装置的又一种优选地示意图。具体实施方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。实施例1图1是根据本申请实施例的定时器的处理方法的流程图。如图1所示,该定时器的处理方法包括:步骤S102,将定时器事件的触发时间划分成多个时间段,其中,每一个所述时间段对应于一个哈希值。优选地,在将定时器事件的触发时间换算为哈希值时,还可以根据精确度的要求本文档来自技高网
...
定时器的处理方法及装置

【技术保护点】
一种定时器的处理方法,其特征在于,包括:将定时器事件的触发时间划分成多个时间段,其中,每一个所述时间段对应于一个哈希值;将所述触发时间在同一个时间段上的定时器事件插入到同一个链表中;以及将各个所述链表中的定时器事件映射到哈希表中,其中,每一个所述定时器事件在哈希表中对应地存储有一个哈希值以及该定时器事件所在的链表的标识。

【技术特征摘要】
1.一种定时器的处理方法,其特征在于,包括:将定时器事件的触发时间划分成多个时间段,其中,每一个所述时间段对应于一个哈希值;将所述触发时间在同一个时间段上的定时器事件插入到同一个链表中;以及将各个所述链表中的定时器事件映射到哈希表中,其中,每一个所述定时器事件在哈希表中对应地存储有一个哈希值以及该定时器事件所在的链表的标识。2.根据权利要求1所述的方法,其特征在于,所述将各个所述链表中的定时器事件映射到哈希表中之后,还包括:获取当前时间段所对应的当前哈希值;在所述哈希表中查找与所述当前哈希值对应的链表的标识;执行查找到的链表的标识指示的链表中的定时器事件。3.根据权利要求2所述的方法,其特征在于,所述执行查找到的链表的标识指示的链表中的定时器事件的步骤包括:创建任务队列;将查找到的链表中的定时器事件加入所述任务队列中;执行所述任务队列中的定时器事件。4.根据权利要求3所述的方法,其特征在于,所述将查找到的链表中的定时器事件加入所述任务队列中的步骤包括:创建调度线程;所述调度线程判断是否存在所述查找到的链表中的定时器事件;以及在判断出存在所述查找到的链表中的定时器事件时,唤醒的调度线程将查找到的链表中的定时器事件加入所述任务队列中。5.根据权利要求4所述的方法,其特征在于,所述执行任务队列中的定时器事件的步骤包括:任务线程执行任务队列中的定时器事件。6.根据权利要求1所述的方法,其特征在于,所述将触发时间在同一个时间段上的定时器事件插...

【专利技术属性】
技术研发人员:王冠
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛;KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1