[發明專利]死鎖檢測方法和裝置有效
| 申請號: | 202010144616.1 | 申請日: | 2020-03-04 |
| 公開(公告)號: | CN113360290B | 公開(公告)日: | 2023-02-03 |
| 發明(設計)人: | 孫斐;孫冰心;張憲鋒;郁利濤 | 申請(專利權)人: | 華為技術有限公司 |
| 主分類號: | G06F9/52 | 分類號: | G06F9/52;G06F11/07 |
| 代理公司: | 北京潤澤恒知識產權代理有限公司 11319 | 代理人: | 王洪 |
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 死鎖 檢測 方法 裝置 | ||
本申請提供一種死鎖檢測方法和裝置。本申請死鎖檢測方法,包括:獲取第一任務序列,所述第一任務序列為待檢測程序的至少一個任務序列中的任意一個,所述第一任務序列用于表征所述待檢測程序包括的至少兩個任務的執行順序;根據所述第一任務序列獲取所述至少兩個任務的所屬隊列及所述所屬隊列的隊列類型;根據所述至少兩個任務的所屬隊列及所述所屬隊列的隊列類型確定所述待檢測程序是否會發生死鎖;當確定所述待檢測程序會發生死鎖時,拋出異常提示。本申請可以以很小的計算量對程序進行死鎖檢測,不但可以在保證待檢測程序運行性能,也可以兼容各種運行環境,對各種高級編程語言編寫的程序進行高效的程序測試。
技術領域
本申請涉及計算機技術,尤其涉及一種死鎖檢測方法和裝置。
背景技術
隨著計算機技術的發展,各類操作系統級的編程框架向開發者提供多線程開發模型,其包括多種開發框架和函數庫,幫助開發者更方便的使用多線程相關技術開發自己的應用程序。但是開發者開發應用程序時可能會造成死鎖,死鎖是指兩個或兩個以上的線程在執行過程中,由于彼此等待而造成的一種阻塞的現象,若無外力作用,該兩個或兩個以上的線程都將無法推進下去。此時稱應用程序處于死鎖狀態或產生了死鎖。死鎖會導致應用程序凍屏、無響應或超時退出等,從而對開發者和使用者造成一定的損失。
目前常用的死鎖檢測方法是在應用程序運行過程中,借助額外的檢測線程或全局的數據結構對應用程序進行實時檢測。
但是上述方法會占用較多的計算機資源,使應用程序執行效率變低,甚至可能產生卡頓等問題。
發明內容
本申請提供一種死鎖檢測方法和裝置,可以以很小的計算量對程序進行死鎖檢測,不但可以在保證待檢測程序運行性能,也可以兼容各種運行環境,對各種高級編程語言編寫的程序進行高效的程序測試。
第一方面,本申請提供一種死鎖檢測方法,包括:獲取第一任務序列,所述第一任務序列為待檢測程序的至少一個任務序列中的任意一個,所述第一任務序列用于表征所述待檢測程序包括的至少兩個任務的執行順序;根據所述第一任務序列獲取所述至少兩個任務的所屬隊列及所述所屬隊列的隊列類型;根據所述至少兩個任務的所屬隊列及所述所屬隊列的隊列類型確定所述待檢測程序是否會發生死鎖;當確定所述待檢測程序會發生死鎖時,拋出異常提示。
本申請可以在待檢測程序運行的同時,對程序進行死鎖檢測,該死鎖檢測所產生的計算量很小,并且不需要創建全局的數據結構,可以在保證待檢測程序運行性能的同時實現程序的死鎖檢測。也可以兼容各種運行環境,對各種高級編程語言編寫的程序進行測試,而且該死鎖檢測所產生的計算量也很小,可以實現兼容性強、高效的程序測試。
在一種可能的實現方式中,所述根據所述至少兩個任務的所屬隊列及所述所屬隊列的隊列類型確定所述待檢測程序是否會發生死鎖,包括:判斷第一任務的執行隊列集合是否包括第二任務的所屬隊列,所述第一任務調度所述第二任務,所述至少兩個任務包括所述第一任務和所述第二任務,且所述第一任務的所屬隊列和所述第二任務的所屬隊列均為串行隊列,所述執行隊列集合包括至少一個隊列,所述至少一個隊列包括對應任務的所屬隊列;若所述第一任務的執行隊列集合包括所述第二任務的所屬隊列,則確定所述待檢測程序會發生死鎖。
針對第一任務調度第二任務的情況,通過判斷第一任務所屬隊列是否包括第二任務所屬隊列來確定待檢測程序會發生死鎖,其所需的計算量很小,對程序的運行不會造成影響。
在一種可能的實現方式中,還包括:若所述第一任務的執行隊列集合不包括所述第二任務的所屬隊列,則判斷是否有第三任務,所述第二任務調度所述第三任務,所述至少兩個任務包括所述第三任務;若有所述第三任務,則判斷所述第二任務的執行隊列集合是否包括所述第三任務的所屬隊列;若所述第二任務的執行隊列集合包括所述第三任務的所屬隊列,則確定所述待檢測程序會發生死鎖。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010144616.1/2.html,轉載請聲明來源鉆瓜專利網。





