モジュール java.management
パッケージ java.lang.management

インタフェースThreadMXBean

すべてのスーパー・インタフェース:
PlatformManagedObject
既知のすべてのサブインタフェース:
ThreadMXBean

public interface ThreadMXBean extends PlatformManagedObject
Java仮想マシンのスレッド・システムの管理インタフェースです。

ThreadMXBeanは、Java仮想マシンでの「プラットフォーム・スレッド」のモニタリングおよび管理をサポートします。 プラットフォーム・スレッドは通常、オペレーティング・システムによってスケジュールされたカーネル・スレッドにマップされます。 ThreadMXBeanは、「仮想スレッド」のモニタリングまたは管理をサポートしていません。

Java仮想マシンは、このインタフェースの実装クラスの単一インスタンスを持ちます。 このインタフェースを実装するこのインスタンスは、ManagementFactory.getThreadMXBean()メソッドをコールするか、platform MBeanServerメソッドから取得できるMXBeanです。

MBeanServer内のスレッド・システムのMXBeanを一意に識別するためのObjectNameは、次のとおりです:

java.lang:type=Threading
これを取得するには、PlatformManagedObject.getObjectName()メソッドを呼び出します。

スレッドID

スレッドIDは、スレッドthreadId()メソッドをコールして戻される正のlong値です。 スレッドIDは一意であり、その寿命を通じて変更されることはありません。 スレッドが終了すると、そのスレッドIDが再使用される可能性があります。

このインタフェースの一部のメソッドは、入力パラメータとしてスレッドIDまたはスレッドIDの配列を取得してスレッドごとの情報を返します。

スレッドCPU時間

Java仮想マシン実装では、現在のプラットフォーム・スレッド、プラットフォーム・スレッド、スレッドなしのCPU時間の測定をサポートできます。

isThreadCpuTimeSupported()メソッドを使用すると、Java仮想マシンが任意のプラットフォーム・スレッドのCPU時間の測定をサポートするかどうかを判断できます。 isCurrentThreadCpuTimeSupported()メソッドを使用すると、Java仮想マシンがプラットフォーム・スレッドのgetCurrentThreadCpuTime()およびgetCurrentThreadUserTime()メソッドでCPU時間の測定をサポートするかどうかを判断できます。

このインタフェースで発生するCPU時間は、その単位の精度がナノ秒となっていますが、ここではこれほどの精度は要求されません。

Java仮想マシンでは、デフォルトでCPU時間の測定を無効にできます。 isThreadCpuTimeEnabled()およびsetThreadCpuTimeEnabled(boolean)メソッドを使って、CPU時間測定が有効になっているかどうかをテストしたり、測定のサポートを有効または無効にしたりすることができます。 スレッドCPU測定を有効にすると、一部のJava仮想マシンの実装では、負荷が大きくなる可能性があります。

スレッド・コンテンション監視

一部のJava仮想マシンは、スレッド・コンテンション監視をサポートします。 スレッド競合モニタリングが有効になっている場合、スレッドが同期のためにブロックしたか、通知を待機した累積経過時間が収集され、ThreadInfoオブジェクトに返されます。

isThreadContentionMonitoringSupported()メソッドを使って、Java仮想マシンがスレッド・コンテンション監視をサポートしているかどうかを判定できます。 スレッド・コンテンション監視はデフォルトで無効です。 setThreadContentionMonitoringEnabled(boolean)メソッドを使って、スレッド・コンテンション監視を有効にすることができます。

同期情報とデッドロック検出

一部のJava仮想マシンは、オブジェクト・モニターの使用量および所有可能なシンクロナイザの使用量の監視をサポートしている場合があります。 getThreadInfo(long[], boolean, boolean)メソッドとdumpAllThreads(boolean, boolean)メソッドを使用すると、スレッドのスタック・トレースと同期情報(スレッドが取得をブロックされているまたは待機しているロックに関して、スレッドが現在所有しているロックに関してなど)を取得できます。

ThreadMXBeanインタフェースには、実行中のアプリケーションでデッドロックを見つけるためのfindMonitorDeadlockedThreads()およびfindDeadlockedThreads()メソッドが用意されています。

導入されたバージョン:
1.5
関連項目: