[发明专利]一种定时器的实现方法无效
申请号: | 200910311448.4 | 申请日: | 2009-12-15 |
公开(公告)号: | CN101727352A | 公开(公告)日: | 2010-06-09 |
发明(设计)人: | 尤金刚 | 申请(专利权)人: | 四川长虹电器股份有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;G06F1/04 |
代理公司: | 成都虹桥专利事务所 51124 | 代理人: | 李顺德 |
地址: | 621000 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 定时器 实现 方法 | ||
技术领域
本发明涉及定时器技术,特别涉及软件定时器技术。
背景技术
众所周知,定时器功能在软件开发中是极其重要的,也是无处不在的。无论是在计算机上的应用软件开发还是嵌入式产品下的开发,都是必不可少的一个重要模块,如电视机中的定时开关机、播放器软件中的播放进度条显示等等,都是离不开定时器管理的,现在大多数产品的软件开发中,定时器的管理都是基于硬件时钟的接口函数或系统函数来实现的,存在很大的不统一性,不方便软件模块的整体移植,另外在对多个定时器事件的管理方面比较混乱。
发明内容
本发明所要解决的技术问题,就是为了克服目前软件定时器不方便软件模块的整体移植的缺点,提供一种定时器的实现方法。
本发明解决其技术问题,采用的技术方案是,一种定时器的实现方法,其特征在于,包括以下步骤:
a.主线程创建定时器队列,并将定时器队列初始化,生成一个用来管理此队列的头结点,以便于对此定时器队列的各种操作;
b.用户线程创建软件定时器,初始化定时器参数;
c.主线程根据用户创建的软件定时器创建子线程,通过硬件时钟初始化软件时钟;
d.主线程根据用户创建软件定时器的操作,完成该定时器在队列中的注册,在此过程中进行队列操作共享锁的加锁操作,完成后解锁;
e.子线程按顺序轮巡队列中所有的用户自定义的定时器结点,利用select函数逐个判断其timer_remain_value计数器的值是否为0,若是则进入g步骤,若不是则进入f步骤;
f.对其timer_remain_value计数器进行减“1”操作,回到e步骤;
g.执行达到超时的定时器事件。
具体的,步骤b所述定时器参数包括定时器ID号、定时器超时时间、定时器离超时的剩余时间、定时器链表指针、定时器队列同步锁机制、定时器超时操作的事件。
进一步的,步骤g还包括以下步骤:
g1.根据用户选择判断该定时器功能是否还要继续使用,若是则进入g2步骤,若不是则进入g3;
g2.将其timer_remain_value计数器重新设为timer_max_value;
g3.在定时器队列中注销该定时器节点。
具体的,还包括以下步骤:
h.用户可随时在主线程中通过定时器ID号进行注销操作。
本发明的有益效果是,通过上述一种定时器的实现方法对定时器进行统一控制,对多个定时器管理清晰,方便软件模块的整体移植,且采用select函数能获取比较高的精度。
具体实施方式
下面结合实施例,详细描述本发明的技术方案。
本发明提供了一种定时器的实现方法,首先主线程创建定时器队列,并将定时器队列初始化,生成一个用来管理此队列的头结点,以便于对此定时器队列的各种操作,然后用户线程创建软件定时器,初始化定时器参数,主线程再根据用户创建的软件定时器创建子线程,通过硬件时钟初始化软件时钟,完成该定时器在队列中的注册,在此过程中进行队列操作共享锁的加锁操作,完成后解锁,子线程按顺序轮巡队列中所有的用户自定义的定时器结点,利用select函数逐个判断其timer_remain_value计数器的值是否为0,若是则执行达到超时的定时器事件,若不是则对其timer_remain_value计数器进行减“1”操作,回到子线程按顺序轮巡那一步。
实施例
本例采用本发明方案进行定时器的实现。
首先主线程创建定时器队列,并将定时器队列初始化,生成一个用来管理此队列的头结点,以便于对此定时器队列的各种操作,如添加,删除,清空等等,然后用户线程创建软件定时器,初始化定时器参数,定时器参数包括定时器ID号、定时器超时时间、定时器离超时的剩余时间、定时器链表指针、定时器队列同步锁机制、定时器超时操作的事件,主线程再根据用户创建的软件定时器创建子线程,通过硬件时钟初始化软件时钟,完成该定时器在队列中的注册,在此过程中进行队列操作共享锁的加锁操作,完成后解锁,子线程按顺序轮巡队列中所有的用户自定义的定时器结点,利用select函数逐个判断其timer_remain_value计数器的值是否为0,若不是则对其timer_remain_value计数器进行减“1”操作,回到子线程按顺序轮巡那一步,若是则执行达到超时的定时器事件,根据用户选择判断该定时器功能是否还要继续使用,若是则将其timer_remain_value计数器重新设为timer_max_value,若不是则在定时器队列中注销该定时器节点,用户可随时在主线程中通过定时器ID号进行注销操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川长虹电器股份有限公司,未经四川长虹电器股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910311448.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:显示装置及图像显示方法
- 下一篇:一种上下表面结构对称的聚烯烃微孔膜制备方法