jstack 使用過程整理

2021-08-15 03:14:32 字數 575 閱讀 5561

利用多執行緒處理檔案的過程中,根據檔名將檔案平均分配到各個執行緒當中執行,程式內會將處理過後的檔案刪除掉。執行一段時間後發現,會有一類問價一直處理不掉,調查後發現這些沒有被處理的檔案為需要同乙個執行緒需要處理的檔案,推測可能是執行緒掛起了,但是不知道具體是什麼原因造成的。

利用jstack每十秒或者更長時間生成三份日誌檔案,重點觀察出現問題的執行緒是由於什麼原因掛起,在等待哪些資源問題。

使用語句

nohup jstack -l pid >/log

.log

&

輸出log日誌對比後發現是由於資料庫使用長連線方式,在載入資料庫配置資料時導致執行緒掛起,將資料庫工具類中,獲取資料庫連線時的方式改為短連線後,重新測試,觀察一段時間之後發現問題得到了解決。

通過thread dump分析執行緒狀態,大多數情況下會基於thead dump分析當前各個執行緒的運**況,如是否存在死鎖、是否存在乙個執行緒長時間持有鎖不放等等。

在dump中,執行緒一般存在如下幾種狀態:

runnable,執行緒處於執行中

blocked,執行緒被阻塞

waiting,執行緒正在等待

Mac faceswap 使用過程

報錯資訊 no module 安裝環境 pip3 install opencv python 缺少什麼就install什麼就可以。tensorflow只支援3.6,3.5 2.7 重新配置了python環境。keras 報錯 cannot import name np utils 解決 pip in...

TPS DH使用過程

tools為c源 目錄,編譯後在該目錄下可生成dsdgen和dsqgen檔案,此外該目錄包含3個sql檔案,可實現建表和表關聯 query templates為sql查詢語句模板目錄,生成查詢語句時需要使用該目錄 3.編譯tools下 如果使用windows平台,可使用vs開發環境開啟sln檔案後對...

vscode使用過程

在安裝好vscode後,發現 的字型有點小,於是希望能改變字型的大小。方法就是開啟左下角 設定 文字編輯器 字型,然後就可以修改字型大小了 另外,我們也可以通過調整視窗大小的方法來改變,快捷鍵三ctrl 加號或減號 可以在vscode的商店裡面搜尋chinese,開頭第乙個應該就是chinese s...