定时器管理方法和装置制造方法及图纸

技术编号:6606866 阅读:161 留言:0更新日期:2012-04-11 18:40
本发明专利技术实施例公开了一种定时器管理方法和装置,涉及无线通信技术领域,用于降低创建管理定时器的复杂度并节省所需的线程开销。定时器管理进程的主线程在接收到定时器开启请求后,根据该定时器开启请求创建并启动定时器,并保存该定时器的相关信息;所述主线程在捕捉到针对已创建定时器的事件后,查询保存的该已创建定时器的相关信息,并根据该事件和查询到的相关信息执行相关操作。采用本发明专利技术,能够降低创建管理定时器的复杂度并节省所需的线程开销。

【技术实现步骤摘要】

本专利技术涉及无线通信领域,尤其涉及一种定时器管理方法和装置
技术介绍
测试与测试控制符号表示-版本3CTesting and Test Control Notation Version3,TTCN-3)测试系统不仅适用于一致性测试,包括互操作测试,单元测试等,还适用于电信协议和互联网协议,可用于开发和产品测试。平台适配层(Platform Adapter, PA) 是TTCN-3测试系统重要的组成部分,主要为系统提供外部函数实现和单一时间概念。现有的TTCN-3系统的平台适配层主要采用多线程管理定时器的方法为系统提供单一时间概念,包括管理并发定时器,并发定时器是指同时运行的多个定时器;并发定时器的作用主要为第一,提供绝对时间,各定时器之间相互独立,服务于不同的目的对象,定时器的启动与超时之间的时间长度即为定时器周期;例如,在需要分别计时20秒和60秒时, 可以启动一个定时器周期为20秒的定时器以及一个定时器周期为60秒的定时器,在定时器结束时计时结束;第二,提供相对时间(即时间范围),不同定时器之间协调工作,对不同定时器可设定不同的定时器周期,从而提供相对时间的时间上限和下限;例如,在需要在当前时间后的20 60秒内执行某个操作时,可以同时启动一个定时器周期为20秒的定时器 1以及一个定时器周期为60秒的定时器2,定时器1超时(时间上限)到定时器2超时(时间下限)之间的时间即为执行上述操作的时间。系统还可以通过查询定时器信息来确定自定时器启动至当前已经过的时间。如图1所示,定时器的创建及管理方法具体如下步骤1 定时器管理进程的主线程接收到启动定时器的请求后,为每个需要启动的定时器分别创建一个定时器实例;步骤2 主线程为每个定时器实例创建一个定时器管理线程,定时器管理线程启动相应的定时器,将定时器的相关信息存储到长度固定的数组中;步骤3 主线程等待定时器事件,到步骤4或步骤5 ;步骤4 主线程判断是否捕捉到定时器停止事件,若是,则到步骤6,否则,返回步骤3 ;步骤5 主线程判断是否捕捉到定时器超时事件,若是,则到步骤6,否则,返回步骤3 ;步骤6 主线程确定该定时器对应的定时器管理线程,并通知该定时器管理线程停止该定时器,该定时器管理线程根据通知停止该定时器,并在数组中清除该定时器的信息;步骤7 该定时器管理线程释放本定时器管理线程的资源,以终止本定时器管理线程。可见,上述方法需要为并发的每个定时器都创建一个管理线程,其存在以下几点不足第一,对线程进行管理要求额外的CPU开销。线程的使用会给系统带来上下文切换的额外负担,当这种负担超过一定程度时,会影响系统的运行性能,如程序运行速度等。第二,多线程管理的复杂性较高。多线程管理需要考虑线程之间的同步,尤其是涉及到对公共数据的操作,在很大程度上增加程序的复杂性,从而增加程序出错概率,影响程序稳定性。第三,对公有变量的同时读或写会出现错误。当多个线程需要对公有变量进行写操作时,后一个线程往往会修改前一个线程存放的数据,从而使前一个线程的参数被修改; 另外,当公用变量的读写操作是非原子性时,在不同的机器上,中断时间的不确定性,会导致数据在一个线程内的操作产生错误,从而产生随机错误,而这种错误是程序员无法预知的。第四,并发定时器的数目受到限制。采用多线程管理定时器时,同时运行的并发定时器的数目受到同时可运行线程数目的限制。因为操作系统对同一地址空间可同时运行的线程数目有一定的限制。从而使得平台的扩展性较差,且线程数据的增加导致程序运行性能急剧下降,增加了实现复杂性,更重要的是难以提供高精度的单一时间概念。为解决上述问题,一般可行的方案为改进硬件(如PC)性能、优化数据结构设计, 以弥补采用多线程管理定时器的缺陷,如线程同步机制设计、公共数据读写保护及同时运行线程数目带来的限制。但此方法要求提高硬件性能,成本较高。
技术实现思路
本专利技术实施例提供一种定时器管理方法和装置,用于降低创建管理定时器的复杂度并节省所需的线程开销。一种定时器管理方法,该方法包括定时器管理进程的主线程在接收到定时器开启请求后,根据该定时器开启请求创建并启动定时器,并保存该定时器的相关信息;所述主线程在捕捉到针对已创建定时器的事件后,查询保存的该已创建定时器的相关信息,并根据该事件和查询到的相关信息执行相关操作。一种定时器管理装置,该装置包括定时器创建单元,位于定时器管理进程的主线程内,用于在接收到定时器开启请求后,根据该定时器开启请求创建并启动定时器;信息保存单元,位于定时器管理进程的主线程内,用于保存创建的定时器的相关 fn息;定时器管理单元,位于定时器管理进程的主线程内,用于在捕捉到针对已创建定时器的事件后,查询保存的该已创建定时器的相关信息,并根据该事件和查询到的相关信息执行相关操作。本专利技术中,定时器管理进程的主线程在接收到定时器开启请求后,根据该定时器开启请求创建并启动定时器,并保存该定时器的相关信息;所述主线程在捕捉到针对已创建定时器的事件后,查询保存的该已创建定时器的相关信息,并根据该事件和查询到的相关信息执行相关操作。可见,本方案中,在定时器管理进程的主线程创建一个定时器后,由该主线程执行定时器启动及管理的操作,而不需要为该定时器创建用于启动以及管理定时器的定时器管理线程,可以有效节省系统所需的线程开销;并且无论创建了多少定时器,系统仅需要维护一个主线程,而不需要为每个定时器都分别维护一个线程,大大降低了创建管理定时器的复杂度。附图说明图1为现有技术中的并发定时器管理流程示意图;图2为本专利技术实施例提供的方法流程示意图;图3A为本专利技术实施例一的流程示意图;图;3B为本专利技术实施例二的流程示意图;图4为本专利技术实施例提供的装置结构示意图。具体实施例方式为了降低创建管理定时器的复杂度并节省所需的线程开销,本专利技术实施例提供一种定时器管理方法,本方法中,在定时器管理进程的主线程创建一个定时器后,不需要为该定时器创建用于启动以及管理定时器的定时器管理线程,而是由该主线程执行定时器启动及管理的操作。参见图2,本专利技术实施例提供的一种定时器管理方法,包括以下步骤步骤20 定时器管理进程的主线程在接收到定时器开启请求后,根据该定时器开启请求创建并启动定时器,并保存该定时器的相关信息;这里,操作系统的每一个进程都包含一个主线程,该主线程在该进程创建时创建, 该主线程能够创建该进程下的其他线程。定时器开启请求中可以携带定时器时长、定时器标识等信息,该定时器开启请求可以来自系统的应用模块,例如测试模块。步骤21 所述主线程在捕捉到针对已创建定时器的事件后,查询保存的该已创建定时器的相关信息,并根据该事件和查询到的相关信息执行相关操作。步骤20中,在定时器管理进程的主线程接收到定时器开启请求之前,该主线程可以在开始运行后对用于保存定时器相关信息的队列进行初始化,例如创建一个空的队列, 或者将已有的用于保存定时器相关信息的队列进行清空;则该主线程可以将定时器的相关信息保存在初始化后的队列中。所述定时器的相关信息可以包括定时器标识、定时器启动时间、定时器时长等。由于队列这种数据结构具有大小可以动态调整的特性,因此保存的定时器的相关信息的数量可以不受限制,进而使得创建的定时器的数量不受限制,能够较好的保本文档来自技高网
...

【技术保护点】
1.一种定时器管理方法,其特征在于,该方法包括:定时器管理进程的主线程在接收到定时器开启请求后,根据该定时器开启请求创建并启动定时器,并保存该定时器的相关信息;所述主线程在捕捉到针对已创建定时器的事件后,查询保存的该已创建定时器的相关信息,并根据该事件和查询到的相关信息执行相关操作。

【技术特征摘要】

【专利技术属性】
技术研发人员:王福段春虎
申请(专利权)人:大唐移动通信设备有限公司
类型:发明
国别省市:11

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

1