一种超时线程处理方法及装置制造方法及图纸

技术编号:15878596 阅读:24 留言:0更新日期:2017-07-25 16:35
本发明专利技术提供了一种超时线程处理方法及装置,超时线程处理方法包括:预先设置信号处理函数,还包括:获取超时线程的ID;生成携带所述超时线程的ID的函数调用关系指令;向所述超时线程所在的服务进程发送所述函数调用关系指令,以使所述服务进程控制所述ID对应的所述超时线程执行所述信号处理函数,利用所述信号处理函数获取所述超时线程的函数调用关系。超时线程处理装置包括:设置模块、获取模块,指令模块、信号发送模块。本发明专利技术可以提高超时线程处理效率。

Method and device for processing out of time thread

The present invention provides a method and a device for processing thread timeout timeout, thread processing method comprises the following steps: pre setting signal processing function, including: obtaining the timeout thread of the ID generation; carrying the timeout thread ID function calls to send commands; the service process the thread in the timeout function calls instructions to enable the service process control the ID corresponding to the timeout thread to perform the signal processing function, signal processing function to obtain the timeout thread function calls using the. The time out thread processing device comprises a setting module, an acquisition module, an instruction module and a signal sending module. The invention can improve the efficiency of overtime thread processing.

【技术实现步骤摘要】
一种超时线程处理方法及装置
本专利技术涉及计算机
,特别涉及一种超时线程处理方法及装置。
技术介绍
Linux系统成本低并且具有开放性、良好的稳定性和安全性。很多大型企业通过Linux系统处理数据,以支持各企业自己的产品和相关服务。对Linux系统而言,线程是各种服务和具体任务的主体,若线程超时无响应,则无法完成具体业务功能,无法提供服务。当线程出现超时无响应时,现有技术通过看门狗系统重启服务进程并将超时线程名称记录日志。现有技术只记录超时线程名称,导致用户不能找到线程超时的原因,从而降低了超时线程处理效率。
技术实现思路
本专利技术实施例提供了一种超时线程处理方法及装置,能够提高了超时线程处理效率。第一方面,本专利技术提供了一种超时线程处理方法,预先设置信号处理函数,还包括:获取超时线程的ID;生成携带所述超时线程的ID的函数调用关系指令;向所述超时线程所在的服务进程发送所述函数调用关系指令,以使所述服务进程控制所述ID对应的所述超时线程执行所述信号处理函数,利用所述信号处理函数获取所述超时线程的函数调用关系。优选地,在所述获取超时线程的ID之前,进一步包括:针对任一运行线程,当接收到所述运行线程发来的超时时间长度时,执行:判断在超时时间范围内是否接收到所述运行线程发送的任务完成的信号,如果没有,则将所述运行线程作为所述超时线程;其中,所述超时时间范围为从接收到所述运行线程发送的所述超时时间长度开始经过所述超时时间长度的时间范围。优选地,在所述向所述超时线程所在的服务进程发送所述函数调用关系指令之后,进一步包括:预先创建数据库,将每一个所述运行线程中运行的函数的代码保存到所述数据库中;根据所述超时线程的函数调用关系,确定导致所述超时线程超时的问题函数,从所述数据库中确定所述问题函数对应的代码。优选地,在所述判断在超时时间范围内是否接收到所述运行线程发送的任务完成的信号之前,进一步包括:预先配置每个所述运行线程,使得每个所述运行线程在完成任务时周期性地发出任务完成的信号。优选地,所述信号处理函数,用于遍历所述超时线程对应的堆栈,从所述堆栈中获取所述函数调用关系。第二方面,本专利技术实施例提供一种超时线程处理装置,包括:设置模块、获取模块,指令模块、信号发送模块;其中,所述设置模块,用于设置信号处理函数;所述获取模块,用于获取超时线程的ID;所述指令模块,用于生成携带所获取的述获取模块超时线程的ID的函数调用关系指令;所述信号发送模块,用于向所述超时线程所在的服务进程发送所述指令模块生成的函数调用关系指令,以使所述服务进程控制所述ID对应的所述超时线程执行所述设置模块设置的信号处理函数,利用所述信号处理函数获取所述超时线程的函数调用关系。优选地,还包括:判断模块;所述判断模块,用于判断在超时时间范围内是否接收到所述运行线程发送的任务完成的信号,如果没有,则将所述运行线程作为所述超时线程;其中,所述超时时间范围为从接收到所述运行线程发送的所述超时时间长度开始经过所述超时时间长度的时间范围。优选地,还包括:创建模块、数据处理模块;所述创建模块,用于创建数据库,将每一个所述运行线程中运行的函数的代码保存到所述数据库中;所述数据处理模块,用于根据所述超时线程的函数调用关系,确定导致所述超时线程超时的问题函数,从所述数据库中确定所述问题函数对应的代码。优选地,还包括:配置模块;所述配置模块,用于配置每个所述运行线程,使得每个所述运行线程在完成任务时周期性地发出任务完成的信号。优选地,所述设置模块,用于生成遍历所述超时线程对应的堆栈,从所述堆栈中获取所述函数调用关系的所述信号处理函数。本专利技术实施例提供了一种超时线程处理方法及装置,通过获取超时线程的ID,确定超时线程的位置,再向服务进程发送携带超时线程的ID的函数调用关系指令,从而达到利用服务进程控制超时线程执行信号处理函数,获得超时线程中的函数调用关系的目的。因此,本专利技术能够使用户根据函数调用关系来确定线程超时的原因,从而提高了超时线程处理效率。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术一个实施例提供的一种超时线程处理方法的流程图;图2是本专利技术一个实施例提供的另一种超时线程处理方法的流程图;图3是本专利技术一个实施例提供的一种超时线程处理装置的结构示意图;图4是本专利技术一个实施例提供的另一种超时线程处理装置的结构示意图;图5是本专利技术一个实施例提供的又一种超时线程处理装置的结构示意图;图6是本专利技术一个实施例提供的再一种超时线程处理装置的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例,基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。如图1所示,本专利技术实施例提供了一种超时线程处理方法,包括如下步骤:步骤101,预先设置信号处理函数。步骤102,获取超时线程的ID。步骤103,生成携带所述超时线程的ID的函数调用关系指令。步骤104,向所述超时线程所在的服务进程发送所述函数调用关系指令,以使所述服务进程控制所述ID对应的所述超时线程执行所述信号处理函数,利用所述信号处理函数获取所述超时线程的函数调用关系。本专利技术实施例提供了一种超时线程处理方法,通过获取超时线程的ID,确定超时线程的位置,再向服务进程发送携带超时线程的ID的函数调用关系指令,从而达到利用服务进程控制超时线程执行信号处理函数,获得超时线程中的函数调用关系的目的。因此,本专利技术能够使用户根据函数调用关系来确定线程超时的原因,从而提高了超时线程处理效率。为了能够准确的判断线程是否超时,本专利技术的一个实施例中,针对任一运行线程,当接收到所述运行线程发来的超时时间长度时,执行:判断在超时时间范围内是否接收到所述运行线程发送的完成任务的信号,如果没有,则将所述运行线程作为所述超时线程;其中,所述超时时间范围为从接收到所述运行线程发送的所述超时时间长度开始经过所述超时时间长度的时间范围。例如,线程A的超时时间长度为1min,开始执行任务时,线程A先将超时时间长度发送给看门狗系统。如果看门狗系统在从接收到线程A发送的超时时间长度开始,1min之内收到线程A发送的任务完成的信号,则线程A不是超时线程;如果看门狗系统在从接收线程A发送的超时时间长度开始,1min之内没收到线程A发送的任务完成的信号,则线程A是超时线程。在获取所述超时线程的函数调用关系后,为了能够快速准确地找到问题函数代码,在本专利技术的一个实施例中,在所述向所述超时线程所在的服务进程发送所述函数调用关系指令之后,进一步包括:预先创建数据库,将每一个所述运行线程中运行的函数的代码保存到所述数据库中;根据所述超时线程的函数调用关系,确定导致所述超时线程超时的问题函数,从所述数据库中确定所述问题函数对应的代码。例如,线程A中本文档来自技高网...
一种超时线程处理方法及装置

【技术保护点】
一种超时线程处理方法,其特征在于,预先设置信号处理函数,还包括:获取超时线程的ID;生成携带所述超时线程的ID的函数调用关系指令;向所述超时线程所在的服务进程发送所述函数调用关系指令,以使所述服务进程控制所述ID对应的所述超时线程执行所述信号处理函数,利用所述信号处理函数获取所述超时线程的函数调用关系。

【技术特征摘要】
1.一种超时线程处理方法,其特征在于,预先设置信号处理函数,还包括:获取超时线程的ID;生成携带所述超时线程的ID的函数调用关系指令;向所述超时线程所在的服务进程发送所述函数调用关系指令,以使所述服务进程控制所述ID对应的所述超时线程执行所述信号处理函数,利用所述信号处理函数获取所述超时线程的函数调用关系。2.根据权利要求1所述的方法,其特征在于,在所述获取超时线程的ID之前,进一步包括:针对任一运行线程,当接收到所述运行线程发来的超时时间长度时,执行:判断在超时时间范围内是否接收到所述运行线程发送的任务完成的信号,如果没有,则将所述运行线程作为所述超时线程;其中,所述超时时间范围为从接收到所述运行线程发送的所述超时时间长度开始经过所述超时时间长度的时间范围。3.根据权利要求2所述的方法,其特征在于,在所述向所述超时线程所在的服务进程发送所述函数调用关系指令之后,进一步包括:预先创建数据库,将每一个所述运行线程中运行的函数的代码保存到所述数据库中;根据所述超时线程的函数调用关系,确定导致所述超时线程超时的问题函数;从所述数据库中确定所述问题函数对应的代码。4.根据权利要求2中所述的方法,其特征在于,在所述判断在超时时间范围内是否接收到所述运行线程发送的任务完成的信号之前,进一步包括:预先配置每个所述运行线程,使得每个所述运行线程在完成任务时周期性地发出任务完成的信号。5.根据权利要求1-4中任一所述的方法,其特征在于,所述信号处理函数,用于遍历所述超时线程对应的堆栈,从所述堆栈中获取所述函数调用关系。6.一种超时线程处理装置,其...

【专利技术属性】
技术研发人员:黄洋
申请(专利权)人:山东浪潮商用系统有限公司
类型:发明
国别省市:山东,37

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

1