Threads Tab頁介紹
執行緒 Tab 頁分三個部分:執行緒數量統計、執行緒取樣、執行緒狀態
執行緒數量統計
左上角統計了當前存執行緒數以及守護執行緒數。
取樣檔案預設儲存在臨時目錄:
你還可以對當前 dump 檔案另存為,儲存到其他目錄,以待後面分析。
在 VisualVM 中執行緒有五種狀態,分別是:
-
Running 執行,對應 Java 中的 Runnable 狀態,即執行狀態。
-
Sleeping 休眠,對應 Java 中的 TimedWaiting 狀態,且透過Thread.sleep(timeout)觸發,即sleep觸發的等待狀態。
-
Wait 等待,對應Java中執行緒 TimedWaiting、Waiting 狀態,且透過wait(), wait(timeout), join(), join(timeout)觸發,即wait觸發的等待狀態。
-
Park 常駐,對應Java中執行緒 TimedWaiting、Waiting 狀態,且透過LockSupport.park(), LockSupoort.parkNanos(), LockSupport.parkUntil()觸發,即LockSupport.park觸發的等待狀態。
-
Monitor 監視,對應Java中 Blocked 狀態,即由synchronized、Lock鎖阻塞觸發的阻塞狀態,若長時間出現此狀態則需要注意死鎖