CN1288557C - 多执行线程同时停止的方法 - Google Patents

多执行线程同时停止的方法 Download PDF

Info

Publication number
CN1288557C
CN1288557C CN 03148772 CN03148772A CN1288557C CN 1288557 C CN1288557 C CN 1288557C CN 03148772 CN03148772 CN 03148772 CN 03148772 A CN03148772 A CN 03148772A CN 1288557 C CN1288557 C CN 1288557C
Authority
CN
China
Prior art keywords
event signal
program
execution thread
execution
correlation criteria
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN 03148772
Other languages
English (en)
Other versions
CN1567205A (zh
Inventor
刘文涵
宋建福
吴健
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xuzhou English Electronics Technology Co., Ltd.
Original Assignee
Inventec Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inventec Corp filed Critical Inventec Corp
Priority to CN 03148772 priority Critical patent/CN1288557C/zh
Publication of CN1567205A publication Critical patent/CN1567205A/zh
Application granted granted Critical
Publication of CN1288557C publication Critical patent/CN1288557C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

一种多执行线程同时停止的方法,更好地控制多个运行周期不同执行线程程序的停止同步,该方法首先在主控程序中设定事件信号,并在执行线程程序中插入事件信号判断语句,主控程序初始化时将事件信号的状态设为假,并设定运行模式,根据运行模式确定关联条件,该关联条件满足时,将该事件信号的状态转为真,执行线程程序判断到事件信号的状态为真时,程序结束。

Description

多执行线程同时停止的方法
技术领域
本发明涉及一种计算机程序中对多执行线程的控制方法,特别是关于一种多执行线程同时停止的方法。
背景技术
目前,大部分的操作系统都支持多执行线程并发机制,因此,很多计算机程序都利用多执行线程机制来提高运行效率。尤其是在一些测试程序中,为了增加某些待测部件的压力,往往都是利用多执行线程并发机制来提高测试压力,模拟真实的负荷环境。
但是,在使用多执行线程时,每个执行线程函数的运行时间长短不同,有的执行线程只有几微秒,有的可能需要几个小时。而多执行线程压力测试为了使用多样的测试模式,任意的控制测试次数和测试时间,要求多个执行线程能够同时停止。如果多个执行线程不能同时停止,首先不能很好的控制测试执行线程在一段时间内完成;其次,如果用户希望测试中途终止,多个执行线程不能同时停止,就无法对用户的动作进行及时的响应。
多执行线程程序一般是由一个主控程序和若干具体测试执行线程程序组成的,在多执行线程压力测试的过程中,在同一时间可能有几百,甚至几千个运行周期不同的测试执行线程,同时运行。而且,具体执行线程的测试模式有多种,可能是按时间来控制测试的,也有可能是按次数来控制测试的。由于模式不同,相应停止的方式也各有不同,例如,对于按时间进行的测试,可以通过计算运行时间来控制停止,但对于按照次数进行的测试,就不能通过计算时间来控制,因为每个执行线程函数的运行周期不同,我们不知道一定次数的测试需要多少时间。对于一些较复杂的或综合的测试平台而言,其需要的各种具体测试执行线程程序往往也是多样的,不仅自运行的时间不同,而且测试模式也可能需要变化,让如此多数量的执行线程程序在一个比较短的时间内同时相应停止,确实不是一件容易的事情。
发明内容
本发明所要解决的技术问题为提供一种多执行线程同时停止的方法,可以更好地控制多个运行周期不同的执行线程程序的停止。
为实现上述目的本发明提供一种多执行线程同时停止的方法,用于控制多个运行周期不同的执行线程程序,该方法首先在主控程序中设定事件信号,并在执行线程程序中插入事件信号判断语句;主控程序初始化时将事件信号的状态设为假,并设定运行模式;该运行模式包括时间模式及循环模式;根据运行模式确定关联条件;如果运行模式为时间模式,则其关联条件为预设的时间到达;如果运行模式为循环模式,则其关联条件为预设的运行次数到达;该关联条件满足时,将该事件信号的状态转为真;执行线程程序判断到事件信号的状态为真时,程序结束。
应用本发明可以明显的提高程序设计的灵活性,对于测试平台而言,可以扩充多个测试模式,测试执行线程函数只要做一次测试就可以了,这样就降低了测试项开发的复杂性,而且可以任意控制测试次数和测试时间,各个测试的测试执行线程函数不需要作任何变化。
附图说明
图1为本发明的多执行线程同时停止的方法流程图;
图2为本发明的主控程序实施例流程图;及
图3为本发明的执行线程程序实施例流程图。
具体实施方式
本发明提供一种多执行线程同时停止的方法,用于控制多个运行周期不同的执行线程程序,请参阅图1,首先在主控程序中设定事件信号,并在执行线程程序中插入事件信号判断语句(步骤101);主控程序初始化时将事件信号的状态设为假,并设定运行模式(步骤102);然后根据运行模式确定关联条件(步骤103);该关联条件满足时,将该事件信号的状态转为真(步骤104);执行线程程序判断到事件信号的状态为真时,程序结束(步骤105)。
其中执行线程程序中的事件信号判断语句,可以在需要耗费较多CPU时间的程序片段的前后插入,也可以在执行线程程序中的内部循环中插入,也可以在执行线程程序的开始以及结束部分插入。
其中所述事件信号可以由点击一按钮触发,其关联条件是该按钮被点击;也可以由定时器触发,其关联条件是预设的时间到达;也可以由循环计数器触发,其关联条件是预设的运行次数到达。
所述运行模式包括时间模式及循环模式,如果运行模式为时间模式,则其关联条件为预设的时间到达;如果运行模式为循环模式,则其关联条件为预设的运行次数到达。
下面以一具体实施例来说明本发明。在某些较复杂的测试平台中,不同的测试执行线程运行的周期不同,测试CPU的执行线程运行一次只需要不到1秒种,运行Memory Walk’ Ocheck方法的测试执行线程需要58分钟。应用本发明,我们不但可以根据需要为每个测试项开启任意多个执行线程数,设定运行的时间,而且可以使不同执行线程在短时间内同时停止。
根据本发明,我们可以在主控程序中设置一“_isStopping”事件信号,其状态为“True”时,停止测试。请参见图2,为本发明的主控程序实施例流程示意图,在主控程序初始化时,将事件信号“_isStopping”的状态设为“False”,并由用户设定测试模式,选择测试项(步骤201);随后,主控程序判断到测试模式(步骤202);如果是时间模式,则开启定时器(步骤203);如果是循环模式,则开启计数器(步骤204);然后运行测试执行线程函数(步骤205、206),在运行过程中,如果时间条件满足(步骤207),或者次数条件满足(步骤208),则将“_isStopping”的状态转为“True”(步骤209)。
对于在测试项执行线程函数中添加事件信号,要求在CPU及Memory测试的Run函数中,添加“_isStopping”的判断。由于机器内部是由时钟控制的,任何一个测试都不可以在一段很长的时间内独占CPU。所以我们只要在开始和测试执行线程函数中比较费时的部分的前后,或测试执行线程函数中内部的一些循环中,或测试执行线程函数开启、结束部分等,判断“_isStopping”的状态就可以了。请参阅图3,为本发明的执行线程程序实施例流程图,其是在测试执行线程函数开启之前,对“_isStopping”的状态进行判断(步骤301);如果为假,则执行具体的部件测试程序(步骤302);如果为真,则直接结束执行线程程序。优选的,也可以在执行线程程序(步骤302)中再设置一些“_isStopping”的状态判断,一旦检测到为真,则立即结束测试。
应用本发明,在上述具体实施例的测试中,CPU的几个执行线程与Memory的几个执行线程在前后不到1秒内停止。

Claims (7)

1、一种多执行线程同时停止的方法,用于控制多个运行周期不同的执行线程程序,该方法包括:
在主控程序中设定事件信号,并在执行线程程序中插入事件信号判断语句;
主控程序初始化时将事件信号的状态设为假,并设定运行模式,
该运行模式包括时间模式及循环模式;
根据运行模式确定关联条件,
如果运行模式为时间模式,则其关联条件为预设的时间到达,
如果运行模式为循环模式,则其关联条件为预设的运行次数到达;
该关联条件满足时,将该事件信号的状态转为真;及
执行线程程序判断到事件信号的状态为真时,程序结束。
2、如权利要求1所述的多执行线程同时停止的方法,其特征在于该事件信号可以由点击一按钮触发,其关联条件是该按钮被点击。
3、如权利要求1所述的多执行线程同时停止的方法,其特征在于该事件信号可以由定时器触发,其关联条件是预设的时间到达。
4、如权利要求1所述的多执行线程同时停止的方法,其特征在于该事件信号可以由循环计数器触发,其关联条件是预设的运行次数到达。
5、如权利要求1所述的多执行线程同时停止的方法,其特征在于该在执行线程程序中插入事件信号判断语句的步骤,是在需要耗费较多CPU时间的程序片段的前后插入。
6、如权利要求1所述的多执行线程同时停止的方法,其特征在于该在执行线程程序中插入事件信号判断语句的步骤,是在执行线程程序中的内部循环中插入。
7、如权利要求1所述的多执行线程同时停止的方法,其特征在于该在执行线程程序中插入事件信号判断语句的步骤,是在执行线程程序的开始以及结束部分插入。
CN 03148772 2003-06-25 2003-06-25 多执行线程同时停止的方法 Expired - Fee Related CN1288557C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 03148772 CN1288557C (zh) 2003-06-25 2003-06-25 多执行线程同时停止的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 03148772 CN1288557C (zh) 2003-06-25 2003-06-25 多执行线程同时停止的方法

Publications (2)

Publication Number Publication Date
CN1567205A CN1567205A (zh) 2005-01-19
CN1288557C true CN1288557C (zh) 2006-12-06

Family

ID=34472366

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 03148772 Expired - Fee Related CN1288557C (zh) 2003-06-25 2003-06-25 多执行线程同时停止的方法

Country Status (1)

Country Link
CN (1) CN1288557C (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7890322B2 (en) 2008-03-20 2011-02-15 Huawei Technologies Co., Ltd. Method and apparatus for speech signal processing
CN105261372A (zh) * 2010-07-02 2016-01-20 杜比国际公司 自适应后置滤波器

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7605607B2 (en) * 2006-12-08 2009-10-20 Ng Chan Wai State machine and system and method of implementing a state machine
CN101866300B (zh) * 2009-04-14 2013-08-07 上海科泰世纪科技有限公司 线程托管函数的方法
CN102768637A (zh) * 2011-05-05 2012-11-07 阿里巴巴集团控股有限公司 一种控制测试执行的方法及装置
CN105607991A (zh) * 2014-11-20 2016-05-25 阿里巴巴集团控股有限公司 一种基于异步线程的测试方法和装置
CN106961600B (zh) * 2017-03-31 2018-10-19 深圳市九洲电器有限公司 机顶盒解复用器压力测试方法及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7890322B2 (en) 2008-03-20 2011-02-15 Huawei Technologies Co., Ltd. Method and apparatus for speech signal processing
CN105261372A (zh) * 2010-07-02 2016-01-20 杜比国际公司 自适应后置滤波器
CN105261372B (zh) * 2010-07-02 2021-07-16 杜比国际公司 自适应后置滤波器

Also Published As

Publication number Publication date
CN1567205A (zh) 2005-01-19

Similar Documents

Publication Publication Date Title
US7133820B2 (en) Method and apparatus for debugging programs in a distributed environment
US8079037B2 (en) Generic, multi-instance method and GUI detection system for tracking and monitoring computer applications
US6374369B1 (en) Stochastic performance analysis method and apparatus therefor
US7669185B2 (en) Graphical program having a hierarchy of timed loops
CN101908001B (zh) 多计算机系统
EP0272036A2 (en) Methods and apparatus for providing a microprocessor test interface
US20010011210A1 (en) Hardware and software co-verification employing deferred synchronization
US20060053409A1 (en) Timed loop with sequence frames structure for a graphical program
GB2425628A (en) Programming distributed system using data flow diagrams
US9256485B1 (en) System and method for generating message sequence diagrams from graphical programs
Ferdinand Worst case execution time prediction by static program analysis
CN1288557C (zh) 多执行线程同时停止的方法
US20030191986A1 (en) Method and apparatus for non-obtrusive power profiling
Akhmetshina et al. PicOS: A Tiny Operating System for Extremely Small Embedded Platforms.
Bobrek et al. Modeling shared resource contention using a hybrid simulation/analytical approach
Mukherjee et al. Exploring timing properties using VDM++
Lankamp et al. MGSim-Simulation tools for multi-core processor architectures
Cornero et al. Software synthesis for real-time information processing systems
JP2003345472A (ja) 電力プロファイリング方法及び電力プロファイリング用システム
US20020087844A1 (en) Apparatus and method for concealing switch latency
JP2003150403A (ja) データプロセッサの観測方法及び装置
CN101231588B (zh) 从协同例程环境执行事件驱动环境中函数的装置、系统和方法
GB2596872A (en) Handling injected instructions in a processor
Klotzbuecher et al. Hard real-time control and coordination of robot tasks using Lua
US20100211955A1 (en) Controlling 32/64-bit parallel thread execution within a microsoft operating system utility program

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180503

Address after: Seat 2f13, No. 28, Changsha Bay Road, Kowloon, Hongkong, China

Patentee after: Chen Songjiao

Address before: Taipei City, Taiwan, China

Patentee before: Inventec Corporation

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180518

Address after: 221300 No. 49 Binhu Road, Pizhou high tech Development Zone, Xuzhou, Jiangsu

Patentee after: Xuzhou English Electronics Technology Co., Ltd.

Address before: Seat 2f13, No. 28, Changsha Bay Road, Kowloon, Hongkong, China

Patentee before: Chen Songjiao

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20061206

Termination date: 20180625