[發(fā)明專利]線程狀態(tài)監(jiān)控方法、裝置、計算機設(shè)備和存儲介質(zhì)有效
申請?zhí)枺?/td> | 201811257367.6 | 申請日: | 2018-10-26 |
公開(公告)號: | CN109542719B | 公開(公告)日: | 2022-05-13 |
發(fā)明(設(shè)計)人: | 賀召軍 | 申請(專利權(quán))人: | 金蝶軟件(中國)有限公司 |
主分類號: | G06F11/30 | 分類號: | G06F11/30 |
代理公司: | 華進聯(lián)合專利商標代理有限公司 44224 | 代理人: | 何平 |
地址: | 518000 廣東省深圳市南山區(qū)*** | 國省代碼: | 廣東;44 |
權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
摘要: | |||
搜索關(guān)鍵詞: | 線程 狀態(tài) 監(jiān)控 方法 裝置 計算機 設(shè)備 存儲 介質(zhì) | ||
本發(fā)明涉及一種線程狀態(tài)監(jiān)控方法、裝置、計算機設(shè)備和存儲介質(zhì)。該線程狀態(tài)監(jiān)控方法包括:獲取應(yīng)用運行過程中產(chǎn)生的線程堆棧;根據(jù)所述線程堆棧中的每個線程,從預(yù)設(shè)的全局線程狀態(tài)表中獲取每個線程對應(yīng)的方法狀態(tài)棧,所述方法狀態(tài)棧包括所述線程上各個方法的方法狀態(tài)信息;根據(jù)每個方法狀態(tài)棧中的方法狀態(tài)信息確定每個線程上的方法狀態(tài);其中,所述方法狀態(tài)包括方法運行卡頓、方法運行流暢。利用該方法,可以查看應(yīng)用的每個線程上具體執(zhí)行的每個方法的方法狀態(tài)信息,從而可以根據(jù)該狀態(tài)信息,準確地得到哪個線程上的哪個方法出現(xiàn)了問題,進而對該出現(xiàn)問題的方法的性能進行優(yōu)化。
技術(shù)領(lǐng)域
本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別是涉及一種線程狀態(tài)監(jiān)控方法、裝置、計算機設(shè)備和存儲介質(zhì)。
背景技術(shù)
計算機在運行應(yīng)用程序的過程中,當應(yīng)用程序出現(xiàn)長時間卡頓時,就需要對其運行狀態(tài)進行分析。一般都是分析該應(yīng)用程序運行時產(chǎn)生的線程堆棧,然后在線程堆棧中找到具體是哪個線程上的方法(方法也可以稱為功能)出現(xiàn)問題,從而對該線程的方法進行優(yōu)化,使得應(yīng)用程序運行正常。
傳統(tǒng)技術(shù)中,在應(yīng)用程序運行過程中,一般都是先登錄并運行Java所在的應(yīng)用服務(wù)器,之后運行jvm(Java虛擬機)的jstack(堆棧跟蹤工具)命令,得到該應(yīng)用程序的線程堆棧,然后對該應(yīng)用程序的線程堆棧信息進行分析,并定位出具體是哪個線程出現(xiàn)問題,從而對該線程的所有方法進行優(yōu)化,使應(yīng)用程序運行正常。
但是上述方法無法定位出具體是線程的哪個方法出現(xiàn)了問題,從而無法準確優(yōu)化線程上的方法。
發(fā)明內(nèi)容
基于此,有必要針對上述傳統(tǒng)技術(shù)無法定位出具體是線程的哪個方法出現(xiàn)了問題,從而無法準確優(yōu)化線程上的方法問題,提供一種線程狀態(tài)監(jiān)控方法、裝置、計算機設(shè)備和存儲介質(zhì)。
一種線程狀態(tài)監(jiān)控方法,包括:
獲取應(yīng)用運行過程中產(chǎn)生的線程堆棧;
根據(jù)所述線程堆棧中的每個線程,從預(yù)設(shè)的全局線程狀態(tài)表中獲取每個線程對應(yīng)的方法狀態(tài)棧,所述方法狀態(tài)棧包括所述線程上各個方法的方法狀態(tài)信息;
根據(jù)每個方法狀態(tài)棧中的方法狀態(tài)信息確定每個線程上的方法狀態(tài);其中,所述方法狀態(tài)包括方法運行卡頓、方法運行流暢。
在其中一個實施例中,所述方法狀態(tài)信息包括所述方法的標識、所述方法的開始運行時間。
在其中一個實施例中,所述方法狀態(tài)信息還包括所述方法的非時間參數(shù)信息,所述非時間參數(shù)信息包括所執(zhí)行的數(shù)據(jù)庫腳本、所述方法對應(yīng)的請求地址參數(shù)中的至少一個。
在其中一個實施例中,所述根據(jù)每個方法狀態(tài)棧中的方法狀態(tài)信息確定每個線程上的方法狀態(tài),包括:
獲取當前系統(tǒng)運行時間;
根據(jù)所述當前系統(tǒng)運行時間和每個方法狀態(tài)棧中各個方法的開始運行時間,確定每個線程上各個方法的持續(xù)運行時長;
根據(jù)每個線程上各個方法的持續(xù)運行時長和預(yù)設(shè)的時長的比較結(jié)果,確定每個線程上各個方法的方法狀態(tài)。
在其中一個實施例中,所述獲取應(yīng)用運行過程中產(chǎn)生的線程堆棧之前,還包括:
獲取應(yīng)用運行的當前線程的標識;
根據(jù)所述當前線程的標識判斷當前的全局線程狀態(tài)表中是否存在所述當前線程標識對應(yīng)的方法狀態(tài)棧;
若否,則根據(jù)所述當前線程上的各個方法,在當前的全局線程狀態(tài)表中創(chuàng)建所述當前線程對應(yīng)的方法狀態(tài)棧。
在其中一個實施例中,所述根據(jù)所述當前線程上的各個方法,在當前的全局線程狀態(tài)表中創(chuàng)建所述當前線程對應(yīng)的方法狀態(tài)棧,包括:
在當前的全局線程狀態(tài)表中按照預(yù)設(shè)規(guī)則創(chuàng)建一個空棧;
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于金蝶軟件(中國)有限公司,未經(jīng)金蝶軟件(中國)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811257367.6/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 在多線程處理器中用于高速線程間中斷的方法和設(shè)備
- 一種多線程系統(tǒng)中實現(xiàn)實時監(jiān)控各線程狀態(tài)的方法
- 移動終端系統(tǒng)線程池實現(xiàn)方法及裝置
- 一種基于策略模式的信號發(fā)生器多線程管理方法
- 多線程并發(fā)處理方法和多線程并發(fā)處理系統(tǒng)
- 分布式系統(tǒng)的線程管理方法和裝置
- 線程執(zhí)行方法、裝置、終端及存儲介質(zhì)
- 線程監(jiān)控方法、裝置、電子設(shè)備及計算機可讀存儲介質(zhì)
- 一種多核系統(tǒng)中多線程調(diào)度方法、裝置及設(shè)備
- 線程間通信方法、裝置、電子設(shè)備及存儲介質(zhì)
- 多級校內(nèi)監(jiān)控系統(tǒng)
- 多級校內(nèi)監(jiān)控系統(tǒng)
- 一種范圍廣、力度大的校內(nèi)監(jiān)控系統(tǒng)
- 一種監(jiān)控的方法及系統(tǒng)
- 設(shè)備的監(jiān)控方法、裝置、系統(tǒng)和空調(diào)
- 多級校內(nèi)監(jiān)控系統(tǒng)
- 設(shè)備監(jiān)控方法、裝置、計算機設(shè)備及存儲介質(zhì)
- 風(fēng)險雷達預(yù)警的監(jiān)控方法及系統(tǒng)
- 區(qū)塊鏈網(wǎng)絡(luò)監(jiān)控系統(tǒng)、裝置及方法
- 基于機器視覺的車站客流安全智能監(jiān)控系統(tǒng)