CN1295612C - 一种多线程***中实现实时监控各线程状态的方法 - Google Patents

一种多线程***中实现实时监控各线程状态的方法 Download PDF

Info

Publication number
CN1295612C
CN1295612C CNB2004100098097A CN200410009809A CN1295612C CN 1295612 C CN1295612 C CN 1295612C CN B2004100098097 A CNB2004100098097 A CN B2004100098097A CN 200410009809 A CN200410009809 A CN 200410009809A CN 1295612 C CN1295612 C CN 1295612C
Authority
CN
China
Prior art keywords
thread
monitoring
monitored
state
real time
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
CNB2004100098097A
Other languages
English (en)
Other versions
CN1605987A (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.)
ZTE Corp
Original Assignee
ZTE 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 ZTE Corp filed Critical ZTE Corp
Priority to CNB2004100098097A priority Critical patent/CN1295612C/zh
Publication of CN1605987A publication Critical patent/CN1605987A/zh
Application granted granted Critical
Publication of CN1295612C publication Critical patent/CN1295612C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明涉及一种多线程***中实现实时监控各线程状态的方法。根据本发明的方法,在多线程***中设定一线程为监控线程,其它线程为被监控线程,其中监控线程用于定时与被监控线程联系以获知每个线程的工作状态;每个被监控线程都响应监控线程的消息或通知,及时反馈本线程的工作状态和其他信息;监控线程维护一个每个线程状态的信息表;***根据各线程的不同状态采取不同的策略。本发明通过将线程区分成监控线程与被监控线程两种,使得***结构清晰,分工明确;而且,监控线程与被监控线程之间的协议简单实用,易于实现;另外,使用本发明的方法实现对线程的监控,可以更加高效地协调各线程协同工作,并对出现的问题及时快速地定位。

Description

一种多线程***中实现实时监控各线程状态的方法
技术领域
本发明涉及计算机领域的多线程技术,尤其涉及多线程***中实现实时监控各线程状态的方法。
背景技术
随着科技的发展,在大型***的开发过程中,经常需要使用到多线程技术。在一个复杂的多线程***中,多个线程需要协同工作,这是个比较艰巨的任务。协调各线程共同工作的工作量在整个***的工作量中占有相当大的比例,而且算法较复杂。由于在***运行中,什么异常情况都有可能发生,假如一个线程死锁或发生异常,但是主控线程并不知道,而仍定时给该线程安排任务,这样就容易造成任务缓冲溢出,进而导致业务失败,降低整个***的可靠性。这对于电信、银行等对可靠性要求非常高的***来说是不可容忍的。
目前,尚未检索到论述并解决上述问题的公开文献。
发明内容
本发明的目的是提供一种多线程***中实现实时监控各线程状态的方法,以使多线程***更加高效地协调各线程协同工作,并对出现的问题及时快速地定位。
本发明所提供的多线程***中实现实时监控各线程状态的方法,包括如下步骤:
步骤一:将多线程***中的至少一个线程设定为监控线程,其它线程作为被监控线程,所述监控线程用于定时与被监控线程联系,以获知每个被监控线程的工作状态;
步骤二:所述监控线程维护每个被监控线程状态的信息表;
步骤三:***获取各被监控线程的状态,并根据被监控线程的不同状态采取相应的处理方式。
根据本发明的上述方法,其中所述监控线程可以由***的主控线程担当,也可以由一条线程专职作为监控线程。
根据本发明的上述方法,***的主控线程通过设置回调函数或接收监控线程通知消息的方式获知各被监控线程的状态;或者***的主控线程通过主动向监控线程索取当前的被监控线程的状态。
根据本发明的上述方法,***针对被监控线程的不同状态采取相应的措施,如重起被监控线程、重新初始化被监控线程、不分发任务给被监控线程、重新起动***或触发告警通知用户等。
根据本发明的上述方法,在所述步骤一,监控线程通过设置定时器定时触发点名事件,给所有被监控线程发送点名消息,并设置等待应答的超时长度;当被监控线程点名应答发生超时时,则监控线程累加该被监控线程超时次数,如果该被监控线程超时次数超过预设的次数,则监控线程将该被监控线程状态设为僵死状态,并通知***;而当被监控线程在超时长度限度内点名应答而将包括本线程工作状态的信息反馈给监控线程时,则进入所述步骤二,监控线程根据收到的应答,设置并保存该被监控线程的状态;这时如果被监控线程状态发生变化,则在所述步骤三:监控线程将被监控线程的变化状态反馈给***,***对该被监控线程进行处理并将该被监控线程的超时次数清0。
根据本发明的上述方法,在所述步骤一,被监控线程在发生影响本线程状态的事件时,向监控线程发送报道消息。
根据本发明的上述方法,在所述步骤一,被监控线程在发生影响本线程状态的事件时,向监控线程发送报道消息;同时被监控线程监听来自监控线程定时发来的点名消息,在收到点名消息后,及时根据自身的状态给监控线程发送应答消息,在应答消息中带有表示该被监控线程的状态的参数。
根据本发明的上述方法,所述的被监控线程中有记录其状态是否发生异常的标志位;所述的应答消息中带有该标志位。
由于本发明将多线程区分为监控线程和被监控线程两种,使得多线程***结构清晰,分工明确,采用这种方式,主控线程能够及时了解各线程的状态,从而可以更加高效地协调各线程协同工作,并对出现的问题及时快速地定位及采取相应的处理措施,提高了整个***的可靠性。另外,由于监控线程和被监控线程之间的协议简单,所以本发明易于实现。
附图说明
图1示出了多线程***中通过点名机制实现实时监控各线程状态的方法;
图2示出了多线程***中通过报道机制实现实时监控各线程状态的方法。
具体实施方式
下面结合附图详细描述本发明。
首先需要在多线程的***中确定两种类型的线程,一种是监控线程,一种是被监控线程。监控线程和被监控线程可以使用***的任何线程担当。监控线程的主要任务是定时与被监控线程联系,获取所有被监控线程的状态和监听被监控线程的报道消息一般情况下用主控线程作为监控线程,也可以使用一个线程专职作为监控线程或使用任务中任何其他线程作为监控线程。而被监控线程一般是多线程***中的工作线程。
点名是指监控线程向被监控线程主动发送消息,通过消息应答来获取被监控线程状态。报道是指被监控线程主动向监控线程报告自己的状态。其中点名由监控线程发起。报道由被监控线程发起。
图1示出了多线程***中通过点名机制实现实时监控各线程状态的方法。在图1中,监控线程通过设置定时器定时触发点名事件,给所有被监控线程发送点名消息,并设置等待应答的超时长度。如果没有超时,则根据收到的应答设置并保存该被监控线程的状态,形成该被监控线程的状态信息表。如果被监控线程状态发生变化,则根据需要可以通过回调函数等方式反馈给***,由***根据情况采取不同的措施,并将该线程的超时次数清0。如果某个被监控线程点名应答发生超时,则累加该被监控线程超时次数,如果该被监控线程超时次数超过预设的次数,则将该被监控线程状态设为僵死状态,并通知***。
图2示出了多线程***中通过报道机制实现实时监控各线程状态的方法。被监控线程在发生影响本线程状态事件的时候,比如线程启动、终止、发生异常等,给监控线程发送报道消息。监控线程接收报道消息,并设置、保存该被监控线程的状态,形成该被监控线程的状态信息表。然后,监控线程将被监控线程的状态变化根据需要通过回调函数或发送消息等方式反馈给***,由***根据情况采取不同的措施。
另外,还可以将点名和报道机制同时使用。具体地,被监控线程在发生影响本线程状态事件的时候,比如线程启动、终止、发生异常等,给监控线程发送报道消息。同时,被监控线程一直监听来自监控线程的点名消息,收到点名消息后,及时根据自身的状态给监控线程发送应答消息,在应答消息中应该带有该线程状态的参数。如,在被监控线程中有记录是否发生异常的标志位,应答消息中带有此标志位表示该被监控线程是否发生过异常。监控线程接受到被监控线程所发送的应答消息或报道消息后,设置、保存该被监控线程的状态,并形成该被监控线程的状态信息表。然后,监控线程将被监控线程的状态变化根据需要通过回调函数或发送消息等方式反馈给***,由***根据情况采取不同的措施。
***的主控线程可以通过设置回调函数或接收监控线程通知消息的方式获知各被监控线程的状态,也可以主动向监控线程索取当前的被监控线程的状态,并针对不同的状态采取相应的措施,包括:重起某些线程、重新初始化某些线程、不分发任务给某些线程、重新起动***或触发告警通知用户等。
上述内容仅为本发明的最佳实施方案,其并非用来限制本发明的具体实施方式,凡根据本方法的主要发明构思而进行的修改和变动,均应属于本发明权利要求书所要求的保护范围。

Claims (9)

1、一种多线程***中实现实时监控各线程状态的方法,其特征在于,包括如下步骤:
步骤一,将多线程***中的至少一个线程设定为监控线程,其它线程作为被监控线程,所述监控线程用于定时与被监控线程联系,以获知每个被监控线程的工作状态;
步骤二,所述监控线程维护每个被监控线程状态的信息表;
步骤三,***获取各被监控线程的状态,并根据被监控线程的不同状态采取相应的处理方式。
2、根据权利要求1所述的多线程***中实现实时监控各线程状态的方法,其特征在于,所述监控线程为***的主控线程。
3、根据权利要求1所述的多线程***中实现实时监控各线程状态的方法,其特征在于,将一条线程专职作为监控线程。
4、根据权利要求1、2或3所述的多线程***中实现实时监控各线程状态的方法,其特征在于,在所述的步骤三中,***的主控线程通过设置回调函数或接收监控线程通知消息的方式获知各线程的状态;或者***的主控线程通过主动向监控线程索取当前的被监控线程的状态。
5、根据权利要求1所述的多线程***中实现实时监控各线程状态的方法,其特征在于,***所采用的处理方式包括重起被监控线程、重新初始化被监控线程、不分发任务给被监控线程、重新起动***或触发告警通知用户。
6、根据权利要求1所述的多线程***中实现实时监控各线程状态的方法,其特征在于,
在所述步骤一中,监控线程通过设置定时器定时触发点名事件,给所有被监控线程发送点名消息,并设置等待应答的超时长度;
当被监控线程点名应答发生超时时,则监控线程累加该被监控线程超时次数,如果该被监控线程超时次数超过预设的次数,则监控线程将该被监控线程状态设为僵死状态,并通知***;
而当被监控线程在超时长度限度内点名应答而将包括本线程工作状态的信息反馈给监控线程时,则进入所述步骤二,监控线程根据收到的应答,设置并保存该被监控线程的状态;这时如果被监控线程状态发生变化,则在所述步骤三,监控线程将被监控线程的变化状态反馈给***,***对该被监控线程进行处理并将该被监控线程的超时次数清零。
7、根据权利要求1所述的多线程***中实现实时监控各线程状态的方法,其特征在于,在所述步骤一中,被监控线程在发生影响本线程状态的事件时,向监控线程发送报道消息。
8、根据权利要求1所述的多线程***中实现实时监控各线程状态的方法,其特征在于,在所述步骤一中,被监控线程在发生影响本线程状态的事件时,向监控线程发送报道消息;同时被监控线程监听来自监控线程定时发来的点名消息,在收到点名消息后,及时根据自身的状态给监控线程发送应答消息,在应答消息中带有表示该被监控线程的状态的参数。
9、根据权利要求8所述的多线程***中实现实时监控各线程状态的方法,其特征在于,所述的被监控线程中有记录其状态是否发生异常的标志位;所述的应答消息中带有该标志位。
CNB2004100098097A 2004-11-17 2004-11-17 一种多线程***中实现实时监控各线程状态的方法 Expired - Fee Related CN1295612C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2004100098097A CN1295612C (zh) 2004-11-17 2004-11-17 一种多线程***中实现实时监控各线程状态的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2004100098097A CN1295612C (zh) 2004-11-17 2004-11-17 一种多线程***中实现实时监控各线程状态的方法

Publications (2)

Publication Number Publication Date
CN1605987A CN1605987A (zh) 2005-04-13
CN1295612C true CN1295612C (zh) 2007-01-17

Family

ID=34763103

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100098097A Expired - Fee Related CN1295612C (zh) 2004-11-17 2004-11-17 一种多线程***中实现实时监控各线程状态的方法

Country Status (1)

Country Link
CN (1) CN1295612C (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100530107C (zh) * 2007-03-02 2009-08-19 中国科学院声学研究所 基于io事件通知机制的单进程内容服务器装置及方法
CN101458640B (zh) * 2007-12-14 2012-05-23 环达电脑(上海)有限公司 可监控多线程状态的***及其监控方法
CN101256531B (zh) * 2008-04-08 2011-04-06 中兴通讯股份有限公司 一种分析嵌入式设备实时性的方法
CN101882089B (zh) * 2009-05-07 2013-05-08 中兴通讯股份有限公司 一种采用多线程处理业务会话应用的方法及装置
CN102117240B (zh) * 2009-12-31 2016-01-20 腾讯科技(深圳)有限公司 一种获取进程阻塞信息的方法及装置
CN102222015B (zh) * 2010-04-13 2016-04-27 三星电子(中国)研发中心 检测多线程程序中的死锁的方法及***
CN102833120B (zh) * 2011-06-14 2017-06-13 中兴通讯股份有限公司 一种快速自动化测试中处理网管服务器异常的方法及***
CN102214098A (zh) * 2011-06-15 2011-10-12 中山大学 一种基于WebKit浏览器引擎的动态页面数据采集方法
CN102843607A (zh) * 2012-07-24 2012-12-26 四川长虹电器股份有限公司 机顶盒中进程状态监控方法
CN103176901A (zh) * 2013-02-27 2013-06-26 深圳创维数字技术股份有限公司 一种嵌入式软件测试监控方法及***
CN104065626B (zh) * 2013-03-21 2018-03-23 杭州海康威视数字技术股份有限公司 网络摄像机登录状态的更新方法及装置
CN103686157B (zh) * 2013-12-25 2015-10-14 乐视网信息技术(北京)股份有限公司 在云转码中提供报警的方法和***
CN104636259B (zh) * 2015-03-18 2020-05-22 厦门雅迅网络股份有限公司 一种基于运行期动态跟踪的函数执行超时与死锁检测方法
CN106708710A (zh) * 2015-11-12 2017-05-24 高德软件有限公司 用于识别线程卡顿的方法及装置
CN105550028B (zh) * 2015-12-25 2019-08-06 Tcl集团股份有限公司 一种基于缓存锁的多任务时序执行方法及***
CN105700938B (zh) * 2016-01-15 2019-02-19 浪潮通用软件有限公司 一种多线程处理数据的方法及装置
CN106385341B (zh) * 2016-08-31 2021-03-26 福建天晴数码有限公司 客户端监控线程的方法及其***
CN106371976A (zh) * 2016-08-31 2017-02-01 福建天晴数码有限公司 客户端及Web服务器监控线程的方法及其***
CN107451257A (zh) * 2017-07-31 2017-12-08 郑州云海信息技术有限公司 一种基于分布式文件***的可维护性***和方法
CN108415806A (zh) * 2018-02-07 2018-08-17 深圳市亿联智能有限公司 一种高效率线程生命监测方式
CN114077222A (zh) * 2020-08-21 2022-02-22 中国科学院沈阳自动化研究所 多线程交替实现增减材的设备控制***
CN112181702B (zh) * 2020-09-23 2023-06-06 北京紫光展锐通信技术有限公司 一种线程监测方法及装置
CN112379979A (zh) * 2020-10-27 2021-02-19 航天信息股份有限公司 一种应用于税控服务的线程超时监控方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2355319A (en) * 1999-10-14 2001-04-18 Ibm Job scheduler
US6378125B1 (en) * 1999-02-22 2002-04-23 International Business Machines Corporation Debugger thread identification points

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6378125B1 (en) * 1999-02-22 2002-04-23 International Business Machines Corporation Debugger thread identification points
GB2355319A (en) * 1999-10-14 2001-04-18 Ibm Job scheduler

Also Published As

Publication number Publication date
CN1605987A (zh) 2005-04-13

Similar Documents

Publication Publication Date Title
CN1295612C (zh) 一种多线程***中实现实时监控各线程状态的方法
CN105279603B (zh) 可动态配置的大数据分析***及方法
US7076691B1 (en) Robust indication processing failure mode handling
JP2014531087A (ja) 工業的プロセスを管理するためのシステム及び方法
US20070038744A1 (en) Method, apparatus, and computer program product for enabling monitoring of a resource
CN104967537A (zh) 一种报警信息推送方法及装置
US8510755B2 (en) Automatically re-starting services
CN109766198B (zh) 流式处理方法、装置、设备及计算机可读存储介质
CN102523115A (zh) 一种基于动力环境***的服务器监控***
CN113031870A (zh) 一种集群***动态管理方法、装置、存储介质及设备
CN115811537A (zh) 资源调整方法、装置、计算机设备和存储介质
CN104408110A (zh) 数据请求的方法、装置及***
CN110798339A (zh) 一种基于分布式任务调度框架的任务容灾方法
US7552057B2 (en) Method and apparatus for using process exceptions to provide instant notifications for distributed processes
CN109428745B (zh) Jms消息转发方法、装置、电子设备和存储介质
CN111669425B (zh) 监控微服务接口的方法、存储介质
CN113535344A (zh) 网络数据处理方法和装置、服务器及存储介质
CN1862496A (zh) 一种节能并能优化***资源的装置和方法
CN113495705A (zh) 大屏数据处理***
CN109586967A (zh) 一种主动告警式安全监控***
CN1514588A (zh) 用于检测一个节点的操作风险的方法和***
Gaj The concept of a multi-network approach for a dynamic distribution of application relationships
CN1300679C (zh) 基于消息队列的报警信号处理方法
CN106850283B (zh) 一种基于事件驱动的云ac告警处理***及方法
Stopper et al. Service-oriented communication concept based on WCF .NET for industrial applications

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070117

Termination date: 20141117

EXPY Termination of patent right or utility model