线程状态监控方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:20724351 阅读:21 留言:0更新日期:2019-03-30 17:34
本发明专利技术涉及一种线程状态监控方法、装置、计算机设备和存储介质。该线程状态监控方法包括:获取应用运行过程中产生的线程堆栈;根据所述线程堆栈中的每个线程,从预设的全局线程状态表中获取每个线程对应的方法状态栈,所述方法状态栈包括所述线程上各个方法的方法状态信息;根据每个方法状态栈中的方法状态信息确定每个线程上的方法状态;其中,所述方法状态包括方法运行卡顿、方法运行流畅。利用该方法,可以查看应用的每个线程上具体执行的每个方法的方法状态信息,从而可以根据该状态信息,准确地得到哪个线程上的哪个方法出现了问题,进而对该出现问题的方法的性能进行优化。

【技术实现步骤摘要】
线程状态监控方法、装置、计算机设备和存储介质
本专利技术涉及计算机
,特别是涉及一种线程状态监控方法、装置、计算机设备和存储介质。
技术介绍
计算机在运行应用程序的过程中,当应用程序出现长时间卡顿时,就需要对其运行状态进行分析。一般都是分析该应用程序运行时产生的线程堆栈,然后在线程堆栈中找到具体是哪个线程上的方法(方法也可以称为功能)出现问题,从而对该线程的方法进行优化,使得应用程序运行正常。传统技术中,在应用程序运行过程中,一般都是先登录并运行Java所在的应用服务器,之后运行jvm(Java虚拟机)的jstack(堆栈跟踪工具)命令,得到该应用程序的线程堆栈,然后对该应用程序的线程堆栈信息进行分析,并定位出具体是哪个线程出现问题,从而对该线程的所有方法进行优化,使应用程序运行正常。但是上述方法无法定位出具体是线程的哪个方法出现了问题,从而无法准确优化线程上的方法。
技术实现思路
基于此,有必要针对上述传统技术无法定位出具体是线程的哪个方法出现了问题,从而无法准确优化线程上的方法问题,提供一种线程状态监控方法、装置、计算机设备和存储介质。一种线程状态监控方法,包括:获取应用运行过程中产生的线程堆栈;根据所述线程堆栈中的每个线程,从预设的全局线程状态表中获取每个线程对应的方法状态栈,所述方法状态栈包括所述线程上各个方法的方法状态信息;根据每个方法状态栈中的方法状态信息确定每个线程上的方法状态;其中,所述方法状态包括方法运行卡顿、方法运行流畅。在其中一个实施例中,所述方法状态信息包括所述方法的标识、所述方法的开始运行时间。在其中一个实施例中,所述方法状态信息还包括所述方法的非时间参数信息,所述非时间参数信息包括所执行的数据库脚本、所述方法对应的请求地址参数中的至少一个。在其中一个实施例中,所述根据每个方法状态栈中的方法状态信息确定每个线程上的方法状态,包括:获取当前系统运行时间;根据所述当前系统运行时间和每个方法状态栈中各个方法的开始运行时间,确定每个线程上各个方法的持续运行时长;根据每个线程上各个方法的持续运行时长和预设的时长的比较结果,确定每个线程上各个方法的方法状态。在其中一个实施例中,所述获取应用运行过程中产生的线程堆栈之前,还包括:获取应用运行的当前线程的标识;根据所述当前线程的标识判断当前的全局线程状态表中是否存在所述当前线程标识对应的方法状态栈;若否,则根据所述当前线程上的各个方法,在当前的全局线程状态表中创建所述当前线程对应的方法状态栈。在其中一个实施例中,所述根据所述当前线程上的各个方法,在当前的全局线程状态表中创建所述当前线程对应的方法状态栈,包括:在当前的全局线程状态表中按照预设规则创建一个空栈;获取所述当前线程上各个方法的标识、所述当前线程上各个方法的开始运行时间、所述当前线程上各个方法的非时间参数信息;将所述当前线程上各个方法的标识、所述当前线程上各个方法的开始运行时间、所述当前线程上各个方法的非时间参数信息添加至所述空栈中,形成所述当前线程对应的方法状态栈。在其中一个实施例中,所述线程状态监控方法还包括:若各个线程上的方法执行返回操作时,从所述全局线程状态表中删除所述方法对应的方法状态信息。在其中一个实施例中,所述线程状态监控方法还包括:对所述线程上各个方法的方法状态信息的格式进行格式化,并将所述格式化后的方法状态信息输出至web页面上。一种线程状态监控装置,包括:第一获取模块,用于获取应用运行过程中产生的线程堆栈;第二获取模块,用于根据所述线程堆栈中的每个线程,从预设的全局线程状态表中获取每个线程对应的方法状态栈,所述方法状态栈包括所述线程上各个方法的方法状态信息;确定模块,用于根据每个方法状态栈中的方法状态信息确定每个线程上的方法状态;其中,所述方法状态包括方法运行卡顿、方法运行流畅。一种计算机设备,包括:存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:获取应用运行过程中产生的线程堆栈;根据所述线程堆栈中的每个线程,从预设的全局线程状态表中获取每个线程对应的方法状态栈,所述方法状态栈包括所述线程上各个方法的方法状态信息;根据每个方法状态栈中的方法状态信息确定每个线程上的方法状态;其中,所述方法状态包括方法运行卡顿、方法运行流畅。一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:获取应用运行过程中产生的线程堆栈;根据所述线程堆栈中的每个线程,从预设的全局线程状态表中获取每个线程对应的方法状态栈,所述方法状态栈包括所述线程上各个方法的方法状态信息;根据每个方法状态栈中的方法状态信息确定每个线程上的方法状态;其中,所述方法状态包括方法运行卡顿、方法运行流畅。上述线程状态监控方法,计算机设备首先是获取应用在运行过程中产生的线程堆栈,然后根据线程堆栈中的每个线程,从预设的全局线程状态表中获取每个线程对应的方法状态栈,该方法状态栈中包括线程上各个方法的方法状态信息,最后根据每个方法状态栈中的方法状态信息来确定每个线程上的方法状态,是运行卡顿还是运行流畅。利用本实施例的方法,可以查看应用的每个线程上具体执行的每个方法的方法状态信息,从而可以根据该状态信息,准确地得到哪个线程上的哪个方法出现了问题,进而对该出现问题的方法的性能进行优化;同时,其可以避免盲目地对线程上的所有方法的性能进行优化,从而提高了计算机设备对线程的方法性能进行优化的效率。附图说明图1为一个实施例中线程状态监控方法的应用环境图;图2为一个实施例提供的线程状态监控方法的流程示意图;图3为一个实施例提供的线程状态监控方法的流程示意图;图4为一个实施例提供的线程状态监控方法的流程示意图;图5为一个实施例提供的线程状态监控方法的流程示意图;图6为一个实施例提供的线程状态监控装置的结构示意图;图7为一个实施例提供的线程状态监控装置的结构示意图;图8为一个实施例提供的线程状态监控装置的结构示意图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。本专利技术实施例提供的线程状态监控方法,可以适用于图1所示的计算机设备。如图1所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的计算机通过网络连接通信。该计算机程序被处理器执行时以实现一种线程状态监控方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。需要说明的是,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件本文档来自技高网...

【技术保护点】
1.一种线程状态监控方法,其特征在于,包括:获取应用运行过程中产生的线程堆栈;根据所述线程堆栈中的每个线程,从预设的全局线程状态表中获取每个线程对应的方法状态栈,所述方法状态栈包括所述线程上各个方法的方法状态信息;根据每个方法状态栈中的方法状态信息确定每个线程上的方法状态;其中,所述方法状态包括方法运行卡顿、方法运行流畅。

【技术特征摘要】
1.一种线程状态监控方法,其特征在于,包括:获取应用运行过程中产生的线程堆栈;根据所述线程堆栈中的每个线程,从预设的全局线程状态表中获取每个线程对应的方法状态栈,所述方法状态栈包括所述线程上各个方法的方法状态信息;根据每个方法状态栈中的方法状态信息确定每个线程上的方法状态;其中,所述方法状态包括方法运行卡顿、方法运行流畅。2.根据权利要求1所述的线程状态监控方法,其特征在于,所述方法状态信息包括所述方法的标识、所述方法的开始运行时间。3.根据权利要求2所述的线程状态监控方法,其特征在于,所述方法状态信息还包括所述方法的非时间参数信息,所述非时间参数信息包括所执行的数据库脚本、所述方法对应的请求地址参数中的至少一个。4.根据权利要求1-3任一项所述的线程状态监控方法,其特征在于,所述根据每个方法状态栈中的方法状态信息确定每个线程上的方法状态,包括:获取当前系统运行时间;根据所述当前系统运行时间和每个方法状态栈中各个方法的开始运行时间,确定每个线程上各个方法的持续运行时长;根据每个线程上各个方法的持续运行时长和预设的时长的比较结果,确定每个线程上各个方法的方法状态。5.根据权利要求1-3任一项所述的线程状态监控方法,其特征在于,所述获取应用运行过程中产生的线程堆栈之前,所述方法还包括:获取应用运行的当前线程的标识;根据所述当前线程的标识判断当前的全局线程状态表中是否存在所述当前线程标识对应的方法状态栈;若否,则根据所述当前线程上的各个方法,在当前的全局线程状态表中创建所述当前线程对应的方法状态栈。6.根据权利要求5所述的线程状态监控方法,其特征在于,所述根据所述当前线...

【专利技术属性】
技术研发人员:贺召军
申请(专利权)人:金蝶软件中国有限公司
类型:发明
国别省市:广东,44

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

1