[发明专利]软件设计中基于海量定时器的管理方法及系统有效
申请号: | 201410429177.3 | 申请日: | 2014-08-27 |
公开(公告)号: | CN104301134B | 公开(公告)日: | 2017-12-12 |
发明(设计)人: | 付华楷;杨士杰 | 申请(专利权)人: | 烽火通信科技股份有限公司 |
主分类号: | H04L12/24 | 分类号: | H04L12/24 |
代理公司: | 北京捷诚信通专利事务所(普通合伙)11221 | 代理人: | 魏殿绅,庞炳良 |
地址: | 430074 湖北省武*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种软件设计中基于海量定时器的管理方法及系统,涉及网络通信领域,该系统采用时间轮子加有序链表的方式对海量定时器进行管理管理未到时定时器时,根据离散算法将定时器的溢出时间转化为适合时间轮子的数值,找到时间轮子上的定时器有序链表,再将该定时器插入到这个有序链表中;调度到时定时器时,根据离散算法将当前系统时间转换为适合时间轮子的数值,找到时间轮子上面的定时器有序链表,再执行该有序链表上的所有到期定时器。本发明能实现软件设计中海量定时器的快速管理,避免由定时调度慢导致的各种错误;到达49天时,能根据32位数据类型的最高位来控制是否发生翻转并重置,使定时器得到及时调度。 | ||
搜索关键词: | 软件设计 基于 海量 定时器 管理 方法 系统 | ||
【主权项】:
一种软件设计中基于海量定时器的管理方法,其特征在于,包括以下步骤:A、定义一个时间轮子,自行选定一种离散算法,将时间点或时间片均匀分配在该时间轮子上,属于某个时间点或时间片的定时器使用有序链表方式挂在该时间轮子下;所述时间轮子和有序链表的关系以及时间轮子的运作方式如下:根据现有的离散算法或者是直接对时间进行取模运算,在时间轮子上离散各个时间点,在得到的离散时间点处挂一个有序链表,用于存储位于该时间点上的定时器,将海量的定时器通过多个有序链表离散开来,便于调度定时器;B、定时器的计时单位为毫秒,定时器的溢出时间使用无符号32位数据类型,系统时间使用有符号的32位数据类型;插入定时器和调度定时器是在同一进程中同时进行对同一时间轮子同时进行的操作,在插入定时器或调度定时器的时候,给时间轮子上锁,以保证数据的可靠;插入定时器的实现流程如下:步骤101、根据时间轮子和有序链表的关系,分配定时器使用的时间轮子的大小,并初始化定时器使用的时间轮子;步骤102、进入插入定时器的流程,根据定时器的溢出时间计算出时间轮子上的位置;步骤103、根据定时器的溢出时间找到位于时间轮子上的链表位置,并将定时器插入到该位置下挂的有序链表中;调度定时器的实现流程如下:步骤201、根据时间轮子和有序链表的关系,分配定时器使用的时间轮子的大小,并初始化定时器使用的时间轮子;步骤202、进入调度定时器的流程;步骤203、读取系统的当前时间,根据离散算法将系统的当前时间转换为系统时间的滴答;在第25天的时候,当定时器的溢出时间的符号位为1时,将未调度的所有定时器的溢出时间进行以下转换:根据定时器的溢出时间的高位来判断是否发生翻转,如果定时器的溢出时间的高位为1,则将定时器的溢出时间的高位置为0,即将定时器的溢出时间与数据0x7fffffff做位与运算;如果定时器的溢出时间的高位为0,则将定时器的溢出时间赋值为0,保证该定时器被及时调度;步骤204、读取时间轮子上记录的滴答,比较系统时间的滴答与时间轮子上记录的滴答是否相等,如果不相等,则转到步骤205;如果相等,则返回到步骤201;步骤205、顺序执行位于该时间轮子上面的有序链表的溢出定时器的处理流程,转到步骤206;步骤206、将执行过的定时器从有序链表删除,转到步骤207;步骤207、执行后将时间轮子记录的滴答递增,返回到步骤204。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410429177.3/,转载请声明来源钻瓜专利网。