一种定时器的实现方法.pdf

上传人:r5 文档编号:4556539 上传时间:2018-10-20 格式:PDF 页数:4 大小:192.34KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910311448.4

申请日:

2009.12.15

公开号:

CN101727352A

公开日:

2010.06.09

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):G06F 9/46申请公布日:20100609|||实质审查的生效IPC(主分类):G06F 9/46申请日:20091215|||公开

IPC分类号:

G06F9/46; G06F1/04

主分类号:

G06F9/46

申请人:

四川长虹电器股份有限公司

发明人:

尤金刚

地址:

621000 四川省绵阳市高新区绵兴东路35号

优先权:

专利代理机构:

成都虹桥专利事务所 51124

代理人:

李顺德

PDF下载: PDF下载
内容摘要

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

权利要求书

1: 一种定时器的实现方法,其特征在于,包括以下步骤: a.主线程创建定时器队列,并将定时器队列初始化,生成一个用来管理此队列的头结点,以便于对此定时器队列的各种操作; b.用户线程创建软件定时器,初始化定时器参数; c.主线程根据用户创建的软件定时器创建子线程,通过硬件时钟初始化软件时钟; d.主线程根据用户创建软件定时器的操作,完成该定时器在队列中的注册,在此过程中进行队列操作共享锁的加锁操作,完成后解锁; e.子线程按顺序轮巡队列中所有的用户自定义的定时器结点,利用select函数逐个判断其timer_remain_value计数器的值是否为0,若是则进入g步骤,若不是则进入f步骤; f.对其timer_remain_value计数器进行减“1”操作,回到e步骤; g.执行达到超时的定时器事件。
2: 根据权利要求1所述一种定时器的实现方法,其特征在于,步骤b所述定时器参数包括定时器ID号、定时器超时时间、定时器离超时的剩余时间、定时器链表指针、定时器队列同步锁机制、定时器超时操作的事件。
3: 根据权利要求1所述一种定时器的实现方法,其特征在于,步骤g还包括以下步骤: g1.根据用户选择判断该定时器功能是否还要继续使用,若是则进入g2步骤,若不是则进入g3; g2.将其timer_remain_value计数器重新设为timer_max_value; g3.在定时器队列中注销该定时器节点。
4: 根据权利要求1所述一种定时器的实现方法,其特征在于,还包括以下步骤: h.用户可随时在主线程中通过定时器ID号进行注销操作。

说明书


一种定时器的实现方法

    【技术领域】

    本发明涉及定时器技术,特别涉及软件定时器技术。

    背景技术

    众所周知,定时器功能在软件开发中是极其重要的,也是无处不在的。无论是在计算机上的应用软件开发还是嵌入式产品下的开发,都是必不可少的一个重要模块,如电视机中的定时开关机、播放器软件中的播放进度条显示等等,都是离不开定时器管理的,现在大多数产品的软件开发中,定时器的管理都是基于硬件时钟的接口函数或系统函数来实现的,存在很大的不统一性,不方便软件模块的整体移植,另外在对多个定时器事件的管理方面比较混乱。

    【发明内容】

    本发明所要解决的技术问题,就是为了克服目前软件定时器不方便软件模块的整体移植的缺点,提供一种定时器的实现方法。

    本发明解决其技术问题,采用的技术方案是,一种定时器的实现方法,其特征在于,包括以下步骤:

    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号进行注销操作。

一种定时器的实现方法.pdf_第1页
第1页 / 共4页
一种定时器的实现方法.pdf_第2页
第2页 / 共4页
一种定时器的实现方法.pdf_第3页
第3页 / 共4页
点击查看更多>>
资源描述

《一种定时器的实现方法.pdf》由会员分享,可在线阅读,更多相关《一种定时器的实现方法.pdf(4页珍藏版)》请在专利查询网上搜索。

本发明涉及定时器技术。本发明解决了目前软件定时器不方便软件模块的整体移植的问题,提供了一种定时器的实现方法,其技术方案可概括为:首先主线程创建定时器队列,初始化定时器队列,生成一个用来管理此队列的头结点,然后用户线程创建软件定时器,初始化定时器参数,主线程再创建子线程,通过硬件时钟初始化软件时钟,完成该定时器在队列中的注册,在此过程中进行队列操作共享锁的加锁操作,子线程按顺序轮巡队列中所有的用户自。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1