一种定时器的实现方法技术

技术编号:4367270 阅读:191 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及定时器技术。本发明专利技术解决了目前软件定时器不方便软件模块的整体移植的问题,提供了一种定时器的实现方法,其技术方案可概括为:首先主线程创建定时器队列,初始化定时器队列,生成一个用来管理此队列的头结点,然后用户线程创建软件定时器,初始化定时器参数,主线程再创建子线程,通过硬件时钟初始化软件时钟,完成该定时器在队列中的注册,在此过程中进行队列操作共享锁的加锁操作,子线程按顺序轮巡队列中所有的用户自定义的定时器结点,逐个判断其计数器的值是否为0,若是则执行达到超时的定时器事件,若不是则对其计数器进行减“1”操作,回到子线程按顺序轮巡那一步。其有益效果是,方便,适用于定时器。

【技术实现步骤摘要】

本专利技术涉及定时器技术,特别涉及软件定时器技术。
技术介绍
众所周知,定时器功能在软件开发中是极其重要的,也是无处不在的。无论是在计 算机上的应用软件开发还是嵌入式产品下的开发,都是必不可少的一个重要模块,如电视 机中的定时开关机、播放器软件中的播放进度条显示等等,都是离不开定时器管理的,现在 大多数产品的软件开发中,定时器的管理都是基于硬件时钟的接口函数或系统函数来实现 的,存在很大的不统一性,不方便软件模块的整体移植,另外在对多个定时器事件的管理方 面比较混乱。
技术实现思路
本专利技术所要解决的技术问题,就是为了克服目前软件定时器不方便软件模块的整 体移植的缺点,提供。 本专利技术解决其技术问题,采用的技术方案是,,其特征在 于,包括以下步骤 a.主线程创建定时器队列,并将定时器队列初始化,生成一个用来管理此队列的头结点,以便于对此定时器队列的各种操作; b.用户线程创建软件定时器,初始化定时器参数; c.主线程根据用户创建的软件定时器创建子线程,通过硬件时钟初始化软件时 钟; d.主线程根据用户创建软件定时器的操作,完成该定时器在队列中的注册,在此 过程中进行队列操作共享锁的加锁操作,完成后解锁; e.子线程按顺序轮巡队列中所有的用户自定义的定时器结点,利用select函数 逐个判断其timer—remain—value计数器的值是否为0,若是则进入g步骤,若不是则进入f 步骤; f.对其timer_remain_value计数器进行减"1"操作,回到e步骤; g.执行达到超时的定时器事件。 具体的,步骤b所述定时器参数包括定时器ID号、定时器超时时间、定时器离超时的剩余时间、定时器链表指针、定时器队列同步锁机制、定时器超时操作的事件。 进一步的,步骤g还包括以下步骤 gl.根据用户选择判断该定时器功能是否还要继续使用,若是则进入g2步骤,若 不是则进入g3 ; g2.将其timer_remain_value计数器重新设为timer_max_value ; g3.在定时器队列中注销该定时器节点。 具体的,还包括以下步骤3 h.用户可随时在主线程中通过定时器ID号进行注销操作。 本专利技术的有益效果是,通过上述对定时器进行统一控制, 对多个定时器管理清晰,方便软件模块的整体移植,且采用select函数能获取比较高的精 度。具体实施例方式下面结合实施例,详细描述本专利技术的技术方案。 本专利技术提供了,首先主线程创建定时器队列,并将定时器队列初始化,生成一个用来管理此队列的头结点,以便于对此定时器队列的各种操作,然后用户线程创建软件定时器,初始化定时器参数,主线程再根据用户创建的软件定时器创建子线程,通过硬件时钟初始化软件时钟,完成该定时器在队列中的注册,在此过程中进行队列操作共享锁的加锁操作,完成后解锁,子线程按顺序轮巡队列中所有的用户自定义的定时器结点,利用select函数逐个判断其timer—remain—value计数器的值是否为O,若是则执行达到超时的定时器事件,若不是则对其timer—remain—value计数器进行减"1"操作,回到子线程按顺序轮巡那一步。 实施例 本例采用本专利技术方案进行定时器的实现。 首先主线程创建定时器队列,并将定时器队列初始化,生成一个用来管理此队列 的头结点,以便于对此定时器队列的各种操作,如添加,删除,清空等等,然后用户线程创 建软件定时器,初始化定时器参数,定时器参数包括定时器ID号、定时器超时时间、定时器 离超时的剩余时间、定时器链表指针、定时器队列同步锁机制、定时器超时操作的事件,主 线程再根据用户创建的软件定时器创建子线程,通过硬件时钟初始化软件时钟,完成该定 时器在队列中的注册,在此过程中进行队列操作共享锁的加锁操作,完成后解锁,子线程 按顺序轮巡队列中所有的用户自定义的定时器结点,利用select函数逐个判断其timer_ remain_value计数器的值是否为O,若不是则对其timer_remain_value计数器进行减"l" 操作,回到子线程按顺序轮巡那一步,若是则执行达到超时的定时器事件,根据用户选择 判断该定时器功能是否还要继续使用,若是则将其timer—remairuvalue计数器重新设为 timerjiiax—value,若不是则在定时器队列中注销该定时器节点,用户可随时在主线程中通 过定时器ID号进行注销操作。权利要求,其特征在于,包括以下步骤a.主线程创建定时器队列,并将定时器队列初始化,生成一个用来管理此队列的头结点,以便于对此定时器队列的各种操作;b.用户线程创建软件定时器,初始化定时器参数;c.主线程根据用户创建的软件定时器创建子线程,通过硬件时钟初始化软件时钟;d.主线程根据用户创建软件定时器的操作,完成该定时器在队列中的注册,在此过程中进行队列操作共享锁的加锁操作,完成后解锁;e.子线程按顺序轮巡队列中所有的用户自定义的定时器结点,利用select函数逐个判断其timer_remain_value计数器的值是否为0,若是则进入g步骤,若不是则进入f步骤;f.对其timer_remain_value计数器进行减“1”操作,回到e步骤;g.执行达到超时的定时器事件。2. 根据权利要求l所述,其特征在于,步骤b所述定时器参数包 括定时器ID号、定时器超时时间、定时器离超时的剩余时间、定时器链表指针、定时器队列 同步锁机制、定时器超时操作的事件。3. 根据权利要求1所述,其特征在于,步骤g还包括以下步骤 gl.根据用户选择判断该定时器功能是否还要继续使用,若是则进入g2步骤,若不是则进入g3 ;g2.将其timer_remain_value计数器重新设为timer_max_value ; g3.在定时器队列中注销该定时器节点。4. 根据权利要求1所述,其特征在于,还包括以下步骤h. 用户可随时在主线程中通过定时器ID号进行注销操作。全文摘要本专利技术涉及定时器技术。本专利技术解决了目前软件定时器不方便软件模块的整体移植的问题,提供了,其技术方案可概括为首先主线程创建定时器队列,初始化定时器队列,生成一个用来管理此队列的头结点,然后用户线程创建软件定时器,初始化定时器参数,主线程再创建子线程,通过硬件时钟初始化软件时钟,完成该定时器在队列中的注册,在此过程中进行队列操作共享锁的加锁操作,子线程按顺序轮巡队列中所有的用户自定义的定时器结点,逐个判断其计数器的值是否为0,若是则执行达到超时的定时器事件,若不是则对其计数器进行减“1”操作,回到子线程按顺序轮巡那一步。其有益效果是,方便,适用于定时器。文档编号G06F9/46GK101727352SQ200910311448公开日2010年6月9日 申请日期2009年12月15日 优先权日2009年12月15日专利技术者尤金刚 申请人:四川长虹电器股份有限公司本文档来自技高网...

【技术保护点】
一种定时器的实现方法,其特征在于,包括以下步骤:a.主线程创建定时器队列,并将定时器队列初始化,生成一个用来管理此队列的头结点,以便于对此定时器队列的各种操作;b.用户线程创建软件定时器,初始化定时器参数;c.主线程根据用户创建的软件定时器创建子线程,通过硬件时钟初始化软件时钟;d.主线程根据用户创建软件定时器的操作,完成该定时器在队列中的注册,在此过程中进行队列操作共享锁的加锁操作,完成后解锁;e.子线程按顺序轮巡队列中所有的用户自定义的定时器结点,利用select函数逐个判断其timer_remain_value计数器的值是否为0,若是则进入g步骤,若不是则进入f步骤;f.对其timer_remain_value计数器进行减“1”操作,回到e步骤;g.执行达到超时的定时器事件。

【技术特征摘要】

【专利技术属性】
技术研发人员:尤金刚
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:51[中国|四川]

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

1
相关领域技术
  • 暂无相关专利