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 中国語 Web サイトの他の関連記事を参照してください。