[发明专利]定时器的处理方法及装置有效
申请号: | 201110362316.1 | 申请日: | 2011-11-15 |
公开(公告)号: | CN103106222B | 公开(公告)日: | 2017-03-08 |
发明(设计)人: | 王冠 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京康信知识产权代理有限责任公司11240 | 代理人: | 吴贵明,江舟 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 定时器 处理 方法 装置 | ||
1.一种定时器的处理方法,其特征在于,包括:
将定时器事件的触发时间划分成多个时间段,其中,每一个所述时间段对应于一个哈希值;
将所述触发时间在同一个时间段上的定时器事件插入到同一个链表中;以及
将各个所述链表中的定时器事件映射到哈希表中,其中,每一个所述定时器事件在哈希表中对应地存储有一个哈希值以及该定时器事件所在的链表的标识。
2.根据权利要求1所述的方法,其特征在于,所述将各个所述链表中的定时器事件映射到哈希表中之后,还包括:
获取当前时间段所对应的当前哈希值;
在所述哈希表中查找与所述当前哈希值对应的链表的标识;
执行查找到的链表的标识指示的链表中的定时器事件。
3.根据权利要求2所述的方法,其特征在于,所述执行查找到的链表的标识指示的链表中的定时器事件的步骤包括:
创建任务队列;
将查找到的链表中的定时器事件加入所述任务队列中;
执行所述任务队列中的定时器事件。
4.根据权利要求3所述的方法,其特征在于,所述将查找到的链表中的定时器事件加入所述任务队列中的步骤包括:
创建调度线程;
所述调度线程判断是否存在所述查找到的链表中的定时器事件;以及
在判断出存在所述查找到的链表中的定时器事件时,所述唤醒的调度线程将查找到的链表中的定时器事件加入所述任务队列中。
5.根据权利要求4所述的方法,其特征在于,所述执行任务队列中的定时器事件的步骤包括:
任务线程执行任务队列中的定时器事件。
6.根据权利要求1所述的方法,其特征在于,所述将触发时间在同一个时间段上的定时器事件插入到同一个链表中的步骤具体包括:
判断待处理的定时器事件的触发时间所处的时间段;
获取所述触发时间所处的时间段对应的哈希值;
查找与所获取到的哈希值对应的链表;
将所述待处理的定时器事件插入到所查找到的链表中。
7.根据权利要求6所述的方法,其特征在于,所述查找与所获取到的哈希值对应的链表的步骤包括:
在查找不到与所获取到的哈希值对应的链表时,创建与所获取到的哈希值对应的链表,并将所创建的链表作为所述查找到的链表。
8.根据权利要求1所述的方法,其特征在于,所述将触发时间在同一个时间段上的定时器事件插入到同一个链表中的步骤包括:
按照触发时间的先后顺序在同一个时间段上将触发时间在该同一个时间段上的定时器事件插入到同一个链表中。
9.一种定时器的处理装置,其特征在于,包括:
划分单元,用于将定时器事件的触发时间划分成多个时间段,其中,每一个所述时间段对应于一个哈希值;
插入单元,用于将触发时间在同一个时间段上的定时器事件插入到同一个链表中;
映射单元,用于将各个所述链表中的定时器事件映射到哈希表中,其中,每一个定时器事件在哈希表中对应地存储有一个哈希值以及该定时器事件所在的链表的标识。
10.根据权利要求9所述的装置,其特征在于,还包括:
获取单元,用于在将各个所述链表中的定时器事件映射到哈希表中之后,获取当前时间段所对应的当前哈希值;
查找单元,用于在所述哈希表中查找与所述当前哈希值对应的链表的标识;执行单元,用于执行查找到的链表的标识指示的链表中的定时器事件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110362316.1/1.html,转载请声明来源钻瓜专利网。