[发明专利]一种软件定时器的优化方法及系统在审
| 申请号: | 201410309635.X | 申请日: | 2014-07-01 |
| 公开(公告)号: | CN104035786A | 公开(公告)日: | 2014-09-10 |
| 发明(设计)人: | 李梅勇;原曦佳;邓惩 | 申请(专利权)人: | 上海斐讯数据通信技术有限公司 |
| 主分类号: | G06F9/44 | 分类号: | G06F9/44 |
| 代理公司: | 上海光华专利事务所 31219 | 代理人: | 余明伟 |
| 地址: | 201616 上海市松*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 软件 定时器 优化 方法 系统 | ||
1.一种软件定时器的优化方法,应用于若干个需要使用定时器的业务模块中,每一个业务模块包括多个定时器实例对象,其特征在于,包括:
步骤一,为每一个需要使用定时器的业务模块生成定时器链表索引号,创建包括与所述业务模块数量一致的链表数组元素的第一定时器数组;定义总运行时间,记录为T1和每个时刻所有定时器实例对象超时处理所需时间,记录为T2,初始化所述T1和所述T2为零;所述定时器实例对象包括定时器超时回调处理函数;
步骤二,等待一时间片后,所述总运行时间T1自动加1,记录第一总运行时间T1’;
步骤三,开启所述业务模块中的定时器实例对象,根据所述定时器链表索引号将所述业务模块包括的多个定时器实例对象添加至所述第一定时器数组的链表数组元素中;
步骤四,创建第二定时器数组,在所述第二定时器数组检测所述定时器实例对象的超时,记录该定时器实例对象的超时时间T3,生成由该定时器实例对象的超时时间T3与第一总运行时间T1’之和组成的索引时刻;
步骤五,根据所述索引时刻将与所述索引时刻相对应的定时器实例对象添加至所述第二定时器数组的链表数组元素中;
步骤六,在所述第二定时器数组中循环执行所述链表数组元素下的定时器实例对象的超时回调处理函数,执行完后删除该定时器实例对象,继续执行该定时器实例对象下的其他定时器实例对象,直至执行完毕该链表数组元素下所有定时器实例对象,继续下一次循环。
2.根据权利要求1所述的软件定时器的优化方法,其特征在于:所述软件定时器的优化方法还包括:
判断所述索引时刻是否小于等于第一总运行时间T1’与所有定时器实例对象超时处理所需时间T2之和,若是,则执行下一步骤,若否,则记录第二总运行时间T1”;
判断所述第二定时器数组的链表数组元素中是否存在定时器实例对象,若是,则执行下一步骤,若否,则返回步骤二,重新运行所述软件定时器的优化方法;
若所述链表数组元素中存在定时器实例对象,则在所述第二定时器数组中循环执行所述链表数组元素的定时器实例对象的定时器超时回调处理函数,之后删除该定时器实例对象。
3.根据权利要求2所述的软件定时器的优化方法,其特征在于:所述软件定时器的优化方法还包括:
判断该定时器实例对象下是否还存在其他定时器实例对象,若是,则执行超时回调处理函数的步骤,若否,则记录第二总运行时间T1”;
判断第二总运行时间T1”与记录第一总运行时间T1’之差是否大于所述时间片,若否,则表示为所有定时器实例对象超时处理所需时间T2赋值为零,若是,则表示为所有定时器实例对象超时处理所需时间T2赋值为为T1”-T1’,继续下一次循环。
4.根据权利要求1所述的软件定时器的优化方法,其特征在于:所述定时器实例对象还包括记录存在于所述第一定时器数组中链表数组元素的节点的第一节点指针、记录存在于所述第二定时器数组中链表数组元素的节点的第二节点指针、及定时器超时回调处理参数。
5.根据权利要求4所述的软件定时器的优化方法,其特征在于:所述定时器实例对象中的第一节点指针记录所述第一定时器数组中所述链表数组元素的首地址。所述定时器实例对象中的第二节点指针记录所述第二定时器数组中链表数组元素的首地址。
6.根据权利要求5所述的软件定时器的优化方法,其特征在于:所述步骤六还包括根据所述定时器实例对象中的第一节点指针在所述第一定时器数组中删除所述定时器实例对象。
7.根据权利要求1所述的软件定时器的优化方法,其特征在于:所述第一定时器数组为定时器管理链表数组,所述第二定时器数组为定时器超时检测处理链表数组。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海斐讯数据通信技术有限公司,未经上海斐讯数据通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410309635.X/1.html,转载请声明来源钻瓜专利网。





