檢索 Java 中正在運行的執行緒的完整清單
了解 JVM 中執行的執行緒對於偵錯目的和效能分析至關重要。本文探討如何取得 JVM 中目前執行的所有執行緒的列表,包括那些不是由目前類別啟動的執行緒。
取得可迭代線程集
到取得一組可迭代的線程,利用 Thread.getAllStackTraces() 方法。它的 .keySet() 方法提供了一組目前正在執行的執行緒。下面的程式碼片段示範了這一點:
Set<Thread> threadSet = Thread.getAllStackTraces().keySet();
此操作有效地收集 JVM 中運行的所有線程,無論其來源為何。
注意:此操作的效能在使用 Ryzen 5600X 處理器的 Windows 10 上運行的 Azul JVM 16.0.1 上的 12 個執行緒的方法約為 0 ms.
線程檢查的附加上下文
如果您需要有關每個線程的更多信息,例如它們的名稱、狀態或關聯的類,您可以迭代線程明確設定和檢索這些詳細資訊。例如:
for (Thread thread : threadSet) { System.out.println(thread.getName() + " - " + thread.getState()); System.out.println("\t" + thread.getClass()); }
透過使用這種方法,您可以深入了解 JVM 中執行的線程,從而使您能夠有效地解決問題、優化效能和管理並發。
以上是如何檢索所有正在運行的 Java 執行緒的完整清單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!