[发明专利]线程状态监控方法、装置、计算机设备和存储介质有效
申请号: | 201811257367.6 | 申请日: | 2018-10-26 |
公开(公告)号: | CN109542719B | 公开(公告)日: | 2022-05-13 |
发明(设计)人: | 贺召军 | 申请(专利权)人: | 金蝶软件(中国)有限公司 |
主分类号: | G06F11/30 | 分类号: | G06F11/30 |
代理公司: | 华进联合专利商标代理有限公司 44224 | 代理人: | 何平 |
地址: | 518000 广东省深圳市南山区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 线程 状态 监控 方法 装置 计算机 设备 存储 介质 | ||
1.一种线程状态监控方法,其特征在于,包括:
获取应用运行过程中产生的线程堆栈;
根据所述线程堆栈中的每个线程,从预设的全局线程状态表中获取每个线程对应的方法状态栈,所述方法状态栈包括所述线程上各个方法的方法状态信息;所述方法状态信息包括所述方法的标识、所述方法的开始运行时间;
根据每个方法状态栈中的方法状态信息确定每个线程上的方法状态;其中,所述方法状态包括方法运行卡顿、方法运行流畅。
2.根据权利要求1所述的线程状态监控方法,其特征在于,所述方法状态信息还包括所述方法的非时间参数信息,所述非时间参数信息包括所执行的数据库脚本、所述方法对应的请求地址参数中的至少一个。
3.根据权利要求1或2所述的线程状态监控方法,其特征在于,所述根据每个方法状态栈中的方法状态信息确定每个线程上的方法状态,包括:
获取当前系统运行时间;
根据所述当前系统运行时间和每个方法状态栈中各个方法的开始运行时间,确定每个线程上各个方法的持续运行时长;
根据每个线程上各个方法的持续运行时长和预设的时长的比较结果,确定每个线程上各个方法的方法状态。
4.根据权利要求1或2所述的线程状态监控方法,其特征在于,所述获取应用运行过程中产生的线程堆栈之前,所述方法还包括:
获取应用运行的当前线程的标识;
根据所述当前线程的标识判断当前的全局线程状态表中是否存在所述当前线程标识对应的方法状态栈;
若否,则根据所述当前线程上的各个方法,在当前的全局线程状态表中创建所述当前线程对应的方法状态栈。
5.根据权利要求4所述的线程状态监控方法,其特征在于,所述根据所述当前线程上的各个方法,在当前的全局线程状态表中创建所述当前线程对应的方法状态栈,包括:
在当前的全局线程状态表中按照预设规则创建一个空栈;
获取所述当前线程上各个方法的标识、所述当前线程上各个方法的开始运行时间、所述当前线程上各个方法的非时间参数信息;
将所述当前线程上各个方法的标识、所述当前线程上各个方法的开始运行时间、所述当前线程上各个方法的非时间参数信息添加至所述空栈中,形成所述当前线程对应的方法状态栈。
6.根据权利要求1所述的线程状态监控方法,其特征在于,所述方法还包括:
若各个线程上的方法执行返回操作时,从所述全局线程状态表中删除所述方法对应的方法状态信息。
7.根据权利要求1所述的线程状态监控方法,其特征在于,所述方法还包括:
对所述线程上各个方法的方法状态信息的格式进行格式化,并将所述格式化后的方法状态信息输出至web页面上。
8.一种线程状态监控装置,其特征在于,包括:
第一获取模块,用于获取应用运行过程中产生的线程堆栈;
第二获取模块,用于根据所述线程堆栈中的每个线程,从预设的全局线程状态表中获取每个线程对应的方法状态栈,所述方法状态栈包括所述线程上各个方法的方法状态信息;所述方法状态信息包括所述方法的标识、所述方法的开始运行时间;
确定模块,用于根据每个方法状态栈中的方法状态信息确定每个线程上的方法状态;其中,所述方法状态包括方法运行卡顿、方法运行流畅。
9.一种计算机设备,包括:存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1-7中任一项所述方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于金蝶软件(中国)有限公司,未经金蝶软件(中国)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811257367.6/1.html,转载请声明来源钻瓜专利网。