インタフェースThreadMXBean
- すべてのスーパー・インタフェース:
PlatformManagedObject, ThreadMXBean
public interface ThreadMXBean extends ThreadMXBean
Java仮想マシンのスレッド・システムに対応するプラットフォーム固有の管理インタフェースです。
このプラットフォーム拡張は、プラットフォーム拡張をサポートするスレッドの実装だけに利用できます。
- 導入されたバージョン:
- 6u25
-
メソッドのサマリー
修飾子と型メソッド説明default long現在のスレッドのヒープ・メモリー内で割り当てられたメモリー量の合計の概算をバイト単位で返します。longgetThreadAllocatedBytes(long id) 指定されたIDを持つスレッドのヒープ・メモリー内で割り当てられたメモリー量の合計の概算をバイト単位で返します。long[]getThreadAllocatedBytes(long[] ids) 入力配列idsにIDがある各スレッドのヒープ・メモリーに割り当てられた総メモリー量の近似値(バイト単位)を返します。long[]getThreadCpuTime(long[] ids) 入力配列idsにIDがある各スレッドの合計CPU時間(ナノ秒単位)を返します。long[]getThreadUserTime(long[] ids) 入力配列idsにIDがある各スレッドがユーザー・モードで実行したCPU時間(ナノ秒単位)を返します。default longJava仮想マシンの起動以降のすべてのスレッドによってヒープ・メモリーに割り当てられたメモリーの合計量の近似値をバイト単位で返します。booleanスレッド・メモリー割当ての測定が有効かどうかをテストします。booleanJava仮想マシンがスレッド・メモリー割当ての測定をサポートするかどうかをテストします。voidsetThreadAllocatedMemoryEnabled(boolean enable) スレッド・メモリー割当ての測定を有効または無効にします。インタフェースで宣言されたメソッド PlatformManagedObject
getObjectNameインタフェースで宣言されたメソッド ThreadMXBean
dumpAllThreads, dumpAllThreads, findDeadlockedThreads, findMonitorDeadlockedThreads, getAllThreadIds, getCurrentThreadCpuTime, getCurrentThreadUserTime, getDaemonThreadCount, getPeakThreadCount, getThreadCount, getThreadCpuTime, getThreadInfo, getThreadInfo, getThreadInfo, getThreadInfo, getThreadInfo, getThreadInfo, getThreadUserTime, getTotalStartedThreadCount, isCurrentThreadCpuTimeSupported, isObjectMonitorUsageSupported, isSynchronizerUsageSupported, isThreadContentionMonitoringEnabled, isThreadContentionMonitoringSupported, isThreadCpuTimeEnabled, isThreadCpuTimeSupported, resetPeakThreadCount, setThreadContentionMonitoringEnabled, setThreadCpuTimeEnabled修飾子と型メソッド説明dumpAllThreads(boolean lockedMonitors, boolean lockedSynchronizers) スタック・トレースおよび同期情報を含むすべてのライブ・プラットフォーム・スレッドのスレッド情報を返します。default ThreadInfo[]dumpAllThreads(boolean lockedMonitors, boolean lockedSynchronizers, int maxDepth) 指定された最大要素数および同期情報のスタック・トレースを含むすべてのライブ・プラットフォーム・スレッドのスレッド情報を返します。maxDepth == 0の場合、スレッドのスタック・トレースはダンプされません。long[]オブジェクト・モニターまたは「独自のシンクロナイザ」の取得を待機しているデッドロック状態のプラットフォーム・スレッドのサイクルを検索します。long[]オブジェクト・モニターの取得を待機しているデッドロック状態にあるプラットフォーム・スレッドのサイクルを検索します。long[]すべてのライブ・プラットフォーム・スレッドのthreadIDsを返します。long現在のスレッドの合計CPU時間をナノ秒単位で返します。long現在のスレッドがユーザー・モードで実行したCPU時間(ナノ秒単位)を返します。intデーモン・スレッドであるライブ・プラットフォーム・スレッドの現在の数を返します。intJava仮想マシンが起動したかピークがリセットされた後のライブ・プラットフォーム・スレッドのピーク数を返します。intデーモンと非デーモン・スレッドの両方を含むライブ・プラットフォーム・スレッドの現在の数を返します。longgetThreadCpuTime(long id) 指定されたIDのスレッドの合計CPU時間(ナノ秒単位)を返します。getThreadInfo(long id) 指定されたidのスレッドのスレッド情報をスタック・トレースなしで返します。getThreadInfo(long[] ids) スタック・トレースのない入力配列idsにIDがある各スレッドのスレッド情報を返します。getThreadInfo(long[] ids, boolean lockedMonitors, boolean lockedSynchronizers) IDが入力配列idsにある各スレッドのスレッド情報を、スタック・トレースおよび同期情報とともに返します。default ThreadInfo[]getThreadInfo(long[] ids, boolean lockedMonitors, boolean lockedSynchronizers, int maxDepth) IDが入力配列idsにある各スレッドのスレッド情報を返します。指定された最大数の要素と同期情報のスタック・トレースが返されます。getThreadInfo(long[] ids, int maxDepth) IDが入力配列ids内にある各スレッドのスレッド情報を、指定した数のスタック・トレース要素のスタック・トレースとともに返します。getThreadInfo(long id, int maxDepth) 指定されたidのスレッドのスレッド情報を、指定した数のスタック・トレース要素のスタック・トレースとともに返します。longgetThreadUserTime(long id) 指定されたIDのスレッドがユーザー・モードで実行したCPU時間(ナノ秒単位)を返します。longJava仮想マシンの起動後に作成および起動されたプラットフォーム・スレッドの合計数を返します。booleanThreadMXBean.getCurrentThreadCpuTime()およびThreadMXBean.getCurrentThreadUserTime()メソッドを使用して、Java仮想マシンがプラットフォーム・スレッドからのCPU時間測定をサポートするかどうかをテストします。booleanJava仮想マシンがオブジェクト・モニターの使用量の監視をサポートするかどうかをテストします。booleanJava仮想マシンが所有可能なシンクロナイザの使用量の監視をサポートするかどうかをテストします。booleanスレッド・コンテンション監視が有効かどうかをテストします。booleanJava仮想マシンがスレッド・コンテンション監視をサポートするかどうかをテストします。booleanスレッドのCPU時間測定が有効かどうかをテストします。booleanJava仮想マシン実装がプラットフォーム・スレッドのCPU時間測定をサポートしているかどうかをテストします。voidピーク・スレッド数を現在のライブ・プラットフォーム・スレッド数にリセットします。voidsetThreadContentionMonitoringEnabled(boolean enable) スレッド・コンテンション監視を有効または無効にします。voidsetThreadCpuTimeEnabled(boolean enable) スレッドのCPU時間測定を有効または無効にします。
-
メソッドの詳細
-
getThreadCpuTime
long[] getThreadCpuTime(long[] ids) 入力配列idsにIDがある各スレッドの合計CPU時間(ナノ秒単位)を返します。 戻り値はナノ秒単位の精度ですが、必ずしもナノ秒の正確度ではありません。このメソッドは、入力配列
idsにあるスレッドIDごとにThreadMXBean.getThreadCpuTime(long)メソッドを呼び出し、返された配列の対応する要素に戻り値を設定することと同等です。- パラメータ:
ids- スレッドIDの配列。- 戻り値:
- 長い値の配列で、それぞれがIDの入力配列の対応する要素にあるIDを持つスレッドのCPU時間です。指定されたIDのスレッドがプラットフォーム・スレッドの場合、スレッドは稼働しており、CPU時間の測定は有効です。それ以外の場合、
-1です。 - スロー:
NullPointerException-idsがnullである場合IllegalArgumentException- 入力配列ids内の任意の要素が<=0の場合。UnsupportedOperationException- Java仮想マシンがCPU時間測定をサポートしない場合。- 関連項目:
-
getThreadUserTime
long[] getThreadUserTime(long[] ids) 入力配列idsにIDがある各スレッドがユーザー・モードで実行したCPU時間(ナノ秒単位)を返します。 戻り値はナノ秒単位の精度ですが、必ずしもナノ秒の正確度ではありません。このメソッドは、入力配列
idsにあるスレッドIDごとにThreadMXBean.getThreadUserTime(long)メソッドを呼び出し、返された配列の対応する要素に戻り値を設定することと同等です。- パラメータ:
ids- スレッドIDの配列。- 戻り値:
- 長い値の配列で、それぞれがIDの入力配列の対応する要素にあるIDを持つスレッドがユーザー・モードCPU時間の量であり、指定されたIDのスレッドがプラットフォーム・スレッドである場合、スレッドは稼働しており、CPU時間の測定は有効です。それ以外の場合、
-1です。 - スロー:
NullPointerException-idsがnullである場合IllegalArgumentException- 入力配列ids内の任意の要素が<=0の場合。UnsupportedOperationException- Java仮想マシンがCPU時間測定をサポートしない場合。- 関連項目:
-
getTotalThreadAllocatedBytes
default long getTotalThreadAllocatedBytes()Java仮想マシンの起動以降のすべてのスレッドによってヒープ・メモリーに割り当てられたメモリーの合計量の近似値をバイト単位で返します。 一部のJava仮想マシン実装に使われるオブジェクト割当てメカニズムでは、オブジェクトが割り当てられた時間とそのサイズが記録される時間の間に遅延が発生するため、戻り値は近似値です。- 実装要件:
- Java仮想マシン実装がスレッド・メモリー割当ての測定をサポートしていない場合、デフォルト実装は
UnsupportedOperationExceptionをスローし、それ以外の場合はスレッド・メモリー割当ての測定が無効になっているかのように動作します。 - 戻り値:
- スレッド・メモリー割当て測定が有効な場合、Java仮想マシンが起動されてからヒープ・メモリーに割り当てられた合計メモリー(バイト単位)の近似値。それ以外の場合は
-1。 - スロー:
UnsupportedOperationException- Java仮想マシンの実装がスレッド・メモリー割当ての測定をサポートしない場合。- 導入されたバージョン:
- 21
- 関連項目:
-
getCurrentThreadAllocatedBytes
default long getCurrentThreadAllocatedBytes()現在のスレッドのヒープ・メモリー内で割り当てられたメモリー量の合計の概算をバイト単位で返します。 一部のJava仮想マシン実装に使われるオブジェクト割当てメカニズムでは、オブジェクトが割り当てられた時間とそのサイズが記録される時間の間に遅延が発生するため、戻り値は近似値です。ローカル管理用の便利なメソッドであり、次のようにコールすることに相当します:
getThreadAllocatedBytes(Thread.currentThread().threadId());- 戻り値:
- スレッド・メモリー割当ての測定が有効な場合、現在のスレッドのヒープ・メモリー内に割り当てられた合計メモリー(バイト単位)の概数。それ以外の場合は
-1。 - スロー:
UnsupportedOperationException- Java仮想マシンの実装がスレッド・メモリー割当ての測定をサポートしない場合。- 導入されたバージョン:
- 14
- 関連項目:
-
getThreadAllocatedBytes
long getThreadAllocatedBytes(long id) 指定されたIDを持つスレッドのヒープ・メモリー内で割り当てられたメモリー量の合計の概算をバイト単位で返します。 一部のJava仮想マシン実装に使われるオブジェクト割当てメカニズムでは、オブジェクトが割り当てられた時間とそのサイズが記録される時間の間に遅延が発生するため、戻り値は近似値です。指定されたIDを持つスレッドが仮想スレッドであるか、動作していないか、存在しない場合、このメソッドは
-1を返します。 スレッド・メモリー割当ての測定が無効の場合、このメソッドは-1を返します。 スレッドが開始され、まだ終了していない場合、スレッドは存続しています。スレッドが起動されたあとにスレッド・メモリー割当ての測定が有効になった場合、Java仮想マシンの実装では、スレッド・メモリー割当ての測定が起動されたポイントとして、この機能が有効になった時間以前の任意の時間を選択できます。
- パラメータ:
id- スレッドのスレッドID- 戻り値:
- 指定されたIDを持つスレッドがプラットフォーム・スレッドであり、スレッドが動作していて、スレッド・メモリー割り当ての測定が有効になっている場合、指定されたIDを持つスレッドのヒープ・メモリー内の割り当て済みメモリーの合計(バイト単位)の近似値。それ以外の場合は
-1。 - スロー:
IllegalArgumentException-id<=0の場合。UnsupportedOperationException- Java仮想マシンの実装がスレッド・メモリー割当ての測定をサポートしない場合。- 関連項目:
-
getThreadAllocatedBytes
long[] getThreadAllocatedBytes(long[] ids) 入力配列idsにIDがある各スレッドのヒープ・メモリーに割り当てられた総メモリー量の近似値(バイト単位)を返します。 一部のJava仮想マシン実装に使われるオブジェクト割当てメカニズムでは、オブジェクトが割り当てられた時間とそのサイズが記録される時間の間に遅延が発生するため、戻り値は近似値です。このメソッドは、入力配列
idsにあるスレッドIDごとにgetThreadAllocatedBytes(long)メソッドを呼び出し、返された配列の対応する要素に戻り値を設定することと同等です。- パラメータ:
ids- スレッドIDの配列。- 戻り値:
- IDの入力配列の対応する要素にIDがあるスレッドのヒープ・メモリーに割り当てられた総メモリー量の近似値(バイト単位)をそれぞれ表すlong値の配列。
- スロー:
NullPointerException-idsがnullである場合IllegalArgumentException- 入力配列ids内の任意の要素が<=0の場合。UnsupportedOperationException- Java仮想マシンの実装がスレッド・メモリー割当ての測定をサポートしない場合。- 関連項目:
-
isThreadAllocatedMemorySupported
boolean isThreadAllocatedMemorySupported()Java仮想マシンがスレッド・メモリー割当ての測定をサポートするかどうかをテストします。- 戻り値:
- Java仮想マシンの実装がスレッド・メモリー割当ての測定をサポートする場合は
true、そうでない場合はfalse。
-
isThreadAllocatedMemoryEnabled
boolean isThreadAllocatedMemoryEnabled()スレッド・メモリー割当ての測定が有効かどうかをテストします。- 戻り値:
- スレッド・メモリー割当ての測定が有効な場合は
true、そうでない場合はfalse。 - スロー:
UnsupportedOperationException- Java仮想マシンがスレッド・メモリー割当ての測定をサポートしない場合。- 関連項目:
-
setThreadAllocatedMemoryEnabled
void setThreadAllocatedMemoryEnabled(boolean enable) スレッド・メモリー割当ての測定を有効または無効にします。 デフォルトはプラットフォームに依存します。- パラメータ:
enable- 有効にするにはtrue、無効にするにはfalse。- スロー:
UnsupportedOperationException- Java仮想マシンがスレッド・メモリー割当ての測定をサポートしない場合。- 関連項目:
-