本发明涉及线程生命监测方式技术领域,尤其涉及一种具有较高反馈速率的高效率线程生命监测方式。
[
背景技术:
]
目前有不同类型的linux用户空间的调试工具。如下:基本调试,获得关键变量-print语句;获取有关文件系统支持,可用内存,cpu,运行程序的内核状态等信息-查询/proc文件系统;最初的问题诊断,系统调用或库调用的相关问题,了解程序流程-strace/ltrace;应用程序内存空间的问题-valgrind;检查应用程序运行时的行为,分析应用程序崩溃-gdb;
以上方法均建立在完善的linux系统或者第三方工具上,但对于嵌入式linux系统而言,不单内核会裁剪,busybox也会进行裁剪,有些debug工具无法直接定位到崩溃点,怎样才能通过增加高优先级注册线程机制,定时侦测线程生命来及时监测问题发生线程并定位,是本领域的技术人员经常考虑的问题。
[
技术实现要素:
]
为克服现有技术所存在的问题,本发明提供一种具有较高反馈速率的高效率线程生命监测方式。
本发明解决技术问题的方案是提供一种高效率线程生命监测方式,包括以下步骤,
s1:系统初始化时首先启动一个最高优先级别的监测线程(monitorthread);该监测线程(monitorthread)包含有threadregister_num、threadname、threadid、threadpriority、threadtimeout、threadfeedtime、threadexception_info;
s2:步骤s1中最高优先级别监测线程(monitorthread)启动完成后,控制除最高优先级别监测线程(monitorthread)之外的所有应用线程都需要向最高优先级别监测线程(monitorthread)注册相关信息;并定时报告安全的feedtime;
s3:监控线程(monitorthread)根据线程注册时的相关信息,定时监测每一个线程的生命状态;
s4:当步骤s3中,监控线程(monitorthread)发现异常情况发生之后,随即向系统报警并列出出现问题的线程;
s5:监测完成。
优选地,所述步骤s2中除最高优先级别监测线程(monitorthread)之外的所有应用线程向最高优先级别监测线程(monitorthread)注册的相关信息包括文件系统支持、可用内存、cpu、运行程序的内核状态信息。
与现有技术相比,本发明一种高效率线程生命监测方式通过在系统初始化时首先启动一个最高优先级的monitorthread,除它之外的所遇应用线程都必须向它注册相关信息,最重要的是定时报告安全的feedtime,运行机制也类似于硬件寄存器喂看门狗watchdog,监测线程monitorthread根据线程注册时的相关信息,定时监测每个线程生命状态,一旦发现异常则立马向系统报警并列出问题线程,实际使用过程可以达到很好的监测异常的效果。
[附图说明]
图1是本发明一种高效率线程生命监测方式的流程示意图。
[具体实施方式]
为使本发明的目的,技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定此发明。
请参阅图1,本发明一种高效率线程生命监测方式1,包括以下步骤,
s1:系统初始化时首先启动一个最高优先级别的监测线程(monitorthread);该监测线程(monitorthread)包含有threadregister_num、threadname、threadid、threadpriority、threadtimeout、threadfeedtime、threadexception_info;
s2:步骤s1中最高优先级别监测线程(monitorthread)启动完成后,控制除最高优先级别监测线程(monitorthread)之外的所有应用线程都需要向最高优先级别监测线程(monitorthread)注册相关信息;并定时报告安全的feedtime;
s3:监控线程(monitorthread)根据线程注册时的相关信息,定时监测每一个线程的生命状态;
s4:当步骤s3中,监控线程(monitorthread)发现异常情况发生之后,随即向系统报警并列出出现问题的线程;
s5:监测完成。
通过在系统初始化时首先启动一个最高优先级的monitorthread,除它之外的所遇应用线程都必须向它注册相关信息,最重要的是定时报告安全的feedtime,运行机制也类似于硬件寄存器喂看门狗watchdog,监测线程monitorthread根据线程注册时的相关信息,定时监测每个线程生命状态,一旦发现异常则立马向系统报警并列出问题线程,实际使用过程可以达到很好的监测异常的效果。
优选地,所述步骤s2中除最高优先级别监测线程(monitorthread)之外的所有应用线程向最高优先级别监测线程(monitorthread)注册的相关信息包括文件系统支持、可用内存、cpu、运行程序的内核状态信息。
与现有技术相比,本发明一种高效率线程生命监测方式1通过在系统初始化时首先启动一个最高优先级的monitorthread,除它之外的所遇应用线程都必须向它注册相关信息,最重要的是定时报告安全的feedtime,运行机制也类似于硬件寄存器喂看门狗watchdog,监测线程monitorthread根据线程注册时的相关信息,定时监测每个线程生命状态,一旦发现异常则立马向系统报警并列出问题线程,实际使用过程可以达到很好的监测异常的效果。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的权利要求保护范围之内。