VisualVM第二章-Threads

SnailsH發表於2024-08-17

Threads Tab頁介紹

VisualVM第二章-Threads

執行緒 Tab 頁分三個部分:執行緒數量統計、執行緒取樣、執行緒狀態

執行緒數量統計

左上角統計了當前存執行緒數以及守護執行緒數。

Thread Dump

執行緒取樣,點選 Thread Dump 可以對當前程式執行的執行緒進行取樣分析。

取樣檔案預設儲存在臨時目錄:

你還可以對當前 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鎖阻塞觸發的阻塞狀態,若長時間出現此狀態則需要注意死鎖問題。

相關文章