- 
- すべてのスーパー・インタフェース:
- PlatformManagedObject
 - 既知のすべてのサブインタフェース:
- ThreadMXBean
 
 public interface ThreadMXBean extends PlatformManagedObject Java仮想マシンのスレッド・システムの管理インタフェースです。Java仮想マシンは、このインタフェースの実装クラスの単一インスタンスを持ちます。 このインタフェースを実装するこのインスタンスは、 ManagementFactory.getThreadMXBean()メソッドまたはplatform MBeanServerメソッドを呼び出すことによって取得できるMXBeanです。MBeanServer内でスレッド・システムのMXBeanを一意に識別するための ObjectNameは次のとおりです。
 これを取得するには、java.lang:type=ThreadingPlatformManagedObject.getObjectName()メソッドを呼び出します。スレッドIDスレッドIDは、スレッドのThread.getId()メソッドの呼出しにより返された正のlong型の値です。 スレッドIDは一意であり、その寿命を通じて変更されることはありません。 スレッドが終了すると、スレッドIDは再利用可能です。このインタフェースの一部のメソッドは、入力パラメータとしてスレッドIDまたはスレッドIDの配列を取得してスレッドごとの情報を返します。 スレッドCPU時間Java仮想マシンの実装では、任意のスレッドやスレッド以外について、現在のスレッドのCPU時間の測定をサポートできます。isThreadCpuTimeSupported()メソッドを使用すると、Java仮想マシンで任意のスレッドのCPU時間を測定できるかどうかを判定できます。isCurrentThreadCpuTimeSupported()メソッドを使用すると、Java仮想マシンが現在のスレッドのCPU時間の測定をサポートしているかどうかを判定できます。 任意のスレッドのCPU時間測定をサポートするJava仮想マシンの実装は現在のスレッドの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
- 関連項目:
- ManagementFactory.getPlatformMXBeans(Class), JMX仕様, MXBeanにアクセスする方法
 
- 
- 
メソッドのサマリー修飾子と型 メソッド 説明 ThreadInfo[]dumpAllThreads(boolean lockedMonitors, boolean lockedSynchronizers)スタック・トレースおよび同期情報を持つすべてのライブ・スレッドのスレッド情報を返します。default ThreadInfo[]dumpAllThreads(boolean lockedMonitors, boolean lockedSynchronizers, int maxDepth)指定された最大数の要素と同期情報のスタック・トレースを持つすべてのライブ・スレッドのスレッド情報を返します。long[]findDeadlockedThreads()オブジェクト・モニターまたは所有可能なシンクロナイザの取得を待機していてデッドロック状態にあるスレッドのサイクルを検索します。long[]findMonitorDeadlockedThreads()オブジェクト・モニターの取得を待機していてデッドロック状態にあるスレッドのサイクルを検索します。long[]getAllThreadIds()すべてのライブ・スレッドのIDを返します。longgetCurrentThreadCpuTime()現在のスレッドの合計CPU時間をナノ秒単位で返します。longgetCurrentThreadUserTime()現在のスレッドがユーザー・モードで実行したCPU時間(ナノ秒単位)を返します。intgetDaemonThreadCount()ライブ・デーモン・スレッドの現在の数を返します。intgetPeakThreadCount()Java仮想マシンが起動された以降の、またはピークがリセットされた以降の、ピーク・ライブ・スレッド・カウントを返します。intgetThreadCount()デーモン・スレッドとデーモン以外のスレッドを含むライブ・スレッドの現在の数を返します。longgetThreadCpuTime(long id)指定されたIDのスレッドの合計CPU時間(ナノ秒単位)を返します。ThreadInfogetThreadInfo(long id)スタック・トレースを持たない指定されたidのスレッドのスレッド情報を返します。ThreadInfo[]getThreadInfo(long[] ids)スタック・トレースを持たない入力配列idsにあるIDを持つスレッドごとのスレッド情報を返します。ThreadInfo[]getThreadInfo(long[] ids, boolean lockedMonitors, boolean lockedSynchronizers)スタック・トレースおよび同期情報を持つ入力配列idsにあるIDを持つスレッドごとのスレッド情報を返します。default ThreadInfo[]getThreadInfo(long[] ids, boolean lockedMonitors, boolean lockedSynchronizers, int maxDepth)IDが入力配列idsにある各スレッドのスレッド情報を返します。指定された最大数の要素と同期情報のスタック・トレースが返されます。ThreadInfo[]getThreadInfo(long[] ids, int maxDepth)指定された数のスタック・トレース要素から成るスタック・トレースを持つ、入力配列idsにあるIDを持つスレッドごとのスレッド情報を返します。ThreadInfogetThreadInfo(long id, int maxDepth)指定された数のスタック・トレース要素から成るスタック・トレースを持つ、指定されたidのスレッドのスレッド情報を返します。longgetThreadUserTime(long id)指定されたIDのスレッドがユーザー・モードで実行したCPU時間(ナノ秒単位)を返します。longgetTotalStartedThreadCount()Java仮想マシンが起動してから作成および起動されたスレッドの合計数を返します。booleanisCurrentThreadCpuTimeSupported()Java仮想マシンが現在のスレッドのCPU時間測定をサポートするかどうかをテストします。booleanisObjectMonitorUsageSupported()Java仮想マシンがオブジェクト・モニターの使用量の監視をサポートするかどうかをテストします。booleanisSynchronizerUsageSupported()Java仮想マシンが所有可能なシンクロナイザの使用量の監視をサポートするかどうかをテストします。booleanisThreadContentionMonitoringEnabled()スレッド・コンテンション監視が有効かどうかをテストします。booleanisThreadContentionMonitoringSupported()Java仮想マシンがスレッド・コンテンション監視をサポートするかどうかをテストします。booleanisThreadCpuTimeEnabled()スレッドのCPU時間測定が有効かどうかをテストします。booleanisThreadCpuTimeSupported()Java仮想マシンの実装が任意のスレッドのCPU時間測定をサポートするかどうかをテストします。voidresetPeakThreadCount()ピーク・スレッド・カウントをライブ・スレッドの現在の数にリセットします。voidsetThreadContentionMonitoringEnabled(boolean enable)スレッド・コンテンション監視を有効または無効にします。voidsetThreadCpuTimeEnabled(boolean enable)スレッドのCPU時間測定を有効または無効にします。- 
インタフェース java.lang.management.PlatformManagedObjectで宣言されたメソッドgetObjectName
 
- 
 
- 
- 
- 
メソッドの詳細- 
getThreadCountint getThreadCount() デーモン・スレッドとデーモン以外のスレッドを含むライブ・スレッドの現在の数を返します。- 戻り値:
- ライブ・スレッドの現在の数
 
 - 
getPeakThreadCountint getPeakThreadCount() Java仮想マシンが起動された以降の、またはピークがリセットされた以降の、ピーク・ライブ・スレッド・カウントを返します。- 戻り値:
- ピーク・ライブ・スレッド・カウント
 
 - 
getTotalStartedThreadCountlong getTotalStartedThreadCount() Java仮想マシンが起動してから作成および起動されたスレッドの合計数を返します。- 戻り値:
- 起動されたスレッドの合計数
 
 - 
getDaemonThreadCountint getDaemonThreadCount() ライブ・デーモン・スレッドの現在の数を返します。- 戻り値:
- ライブ・デーモン・スレッドの現在の数
 
 - 
getAllThreadIdslong[] getAllThreadIds() すべてのライブ・スレッドのIDを返します。 返された配列に含まれる一部のスレッドは、このメソッドが値を返したときに終了していた可能性があります。- 戻り値:
- スレッドIDを含むlong型の配列。
- 例外:
- SecurityException- セキュリティ・マネージャが存在する場合で、呼出し元がManagementPermission("monitor")を持たない場合。
 
 - 
getThreadInfoThreadInfo getThreadInfo(long id) スタック・トレースを持たない指定されたidのスレッドのスレッド情報を返します。 このメソッドは、次を呼び出すのと同等です。getThreadInfo(id, 0);このメソッドは、指定されたIDのスレッドに関するスレッド情報を表す ThreadInfoオブジェクトを返します。 返されたThreadInfoオブジェクトのスタック・トレース、ロックされたモニター、およびロックされたシンクロナイザは、空になります。 指定されたIDのスレッドが生存していないか、存在していない場合、このメソッドはnullを返します。 スレッドが起動され、生存している場合、スレッドは生存しています。MBeanServerアクセス: ThreadInfoのマップ型は、ThreadInfo.fromメソッドで指定された属性を含むCompositeDataです。- パラメータ:
- id- スレッドのスレッドID。 正の値でなければならない
- 戻り値:
- スタック・トレース、ロックされたモニター、およびシンクロナイザ情報を持たない、指定されたIDのスレッドに関するThreadInfoオブジェクト。指定されたIDのスレッドが生存または存在していない場合はnull。
- 例外:
- IllegalArgumentException-- id <= 0の場合。
- SecurityException- セキュリティ・マネージャが存在する場合で、呼出し元がManagementPermission("monitor")を持たない場合。
 
 - 
getThreadInfoThreadInfo[] getThreadInfo(long[] ids) スタック・トレースを持たない入力配列idsにあるIDを持つスレッドごとのスレッド情報を返します。 このメソッドは、次を呼び出すのと同等です。getThreadInfo(ids, 0);このメソッドは、 ThreadInfoオブジェクトの配列を返します。 各ThreadInfoオブジェクトのスタック・トレース、ロックされたモニター、およびロックされたシンクロナイザは、空になります。 指定されたIDのスレッドが生存していないか、存在していない場合、返された配列の対応する要素は、nullを含みます。 スレッドが起動され、生存している場合、スレッドは生存しています。MBeanServerアクセス: ThreadInfoのマップ型は、ThreadInfo.fromメソッドで指定された属性を含むCompositeDataです。- パラメータ:
- ids- スレッドIDの配列。
- 戻り値:
- スタック・トレース、ロックされたモニター、およびシンクロナイザ情報を持たないIDの入力配列の対応する要素にIDがあるスレッドの情報を含むThreadInfoオブジェクトの配列。
- 例外:
- IllegalArgumentException- 入力配列- ids内の任意の要素が- <= 0の場合。
- SecurityException- セキュリティ・マネージャが存在する場合で、呼出し元がManagementPermission("monitor")を持たない場合。
 
 - 
getThreadInfoThreadInfo getThreadInfo(long id, int maxDepth) 指定された数のスタック・トレース要素から成るスタック・トレースを持つ、指定されたidのスレッドのスレッド情報を返します。maxDepthパラメータは、スタック・トレースから取得されるStackTraceElementの最大数を示します。maxDepth == Integer.MAX_VALUEの場合、スレッドのスタック・トレース全体がダンプされます。maxDepth == 0の場合、スレッドのスタック・トレースはダンプされません。 このメソッドは、スレッドのロックされたモニターおよびロックされたシンクロナイザを取得しません。Java仮想マシンがスレッドのスタック・トレース情報を持たない場合、または maxDepth == 0の場合、ThreadInfoオブジェクトのスタック・トレースはStackTraceElementの空の配列になります。指定されたIDのスレッドが生存していないか、存在していない場合、このメソッドは nullを返します。 スレッドが起動され、生存している場合、スレッドは生存しています。MBeanServerアクセス: ThreadInfoのマップ型は、ThreadInfo.fromメソッドで指定された属性を含むCompositeDataです。- パラメータ:
- id- スレッドのスレッドID。 正の値でなければならない
- maxDepth- ダンプされるスタック・トレースのエントリの最大数。- Integer.MAX_VALUEを使って、スタック全体をダンプするよう要求できる。
- 戻り値:
- ロックされたモニターおよびシンクロナイザ情報を持たない、指定されたIDのスレッドに関するThreadInfo。指定されたIDのスレッドが生存または存在していない場合はnull。
- 例外:
- IllegalArgumentException-- id <= 0の場合。
- IllegalArgumentException-- maxDepthが負の場合。
- SecurityException- セキュリティ・マネージャが存在する場合で、呼出し元がManagementPermission("monitor")を持たない場合。
 
 - 
getThreadInfoThreadInfo[] getThreadInfo(long[] ids, int maxDepth) 指定された数のスタック・トレース要素から成るスタック・トレースを持つ、入力配列idsにあるIDを持つスレッドごとのスレッド情報を返します。maxDepthパラメータは、スタック・トレースから取得されるStackTraceElementの最大数を示します。maxDepth == Integer.MAX_VALUEの場合、スレッドのスタック・トレース全体がダンプされます。maxDepth == 0の場合、スレッドのスタック・トレースはダンプされません。 このメソッドは、スレッドのロックされたモニターおよびロックされたシンクロナイザは取得しません。Java仮想マシンがスレッドのスタック・トレース情報を持たない場合、または maxDepth == 0の場合、ThreadInfoオブジェクトのスタック・トレースはStackTraceElementの空の配列になります。このメソッドは、 ThreadInfoオブジェクトの配列を返します。配列の各要素は、ids配列と同じインデックスを持つスレッドに関するスレッド情報です。 指定されたIDのスレッドが生存していないか、存在しない場合、返される配列の対応する要素にnullが設定されます。 スレッドが起動され、生存している場合、スレッドは生存しています。MBeanServerアクセス: ThreadInfoのマップ型は、ThreadInfo.fromメソッドで指定された属性を含むCompositeDataです。- パラメータ:
- ids- スレッドIDの配列
- maxDepth- ダンプされるスタック・トレースのエントリの最大数。- Integer.MAX_VALUEを使って、スタック全体をダンプするよう要求できる。
- 戻り値:
- ロックされたモニターおよびシンクロナイザ情報を持たないIDの入力配列の対応する要素にIDがあるスレッドの情報を含むThreadInfoオブジェクトの配列。
- 例外:
- IllegalArgumentException-- maxDepthが負の場合。
- IllegalArgumentException- 入力配列- ids内の任意の要素が- <= 0の場合。
- SecurityException- セキュリティ・マネージャが存在する場合で、呼出し元がManagementPermission("monitor")を持たない場合。
 
 - 
isThreadContentionMonitoringSupportedboolean isThreadContentionMonitoringSupported() Java仮想マシンがスレッド・コンテンション監視をサポートするかどうかをテストします。- 戻り値:
- Java仮想マシンがスレッド・コンテンション監視をサポートする場合はtrue、そうでない場合はfalse。
 
 - 
isThreadContentionMonitoringEnabledboolean isThreadContentionMonitoringEnabled() スレッド・コンテンション監視が有効かどうかをテストします。- 戻り値:
- スレッド・コンテンション監視が有効な場合はtrue、そうでない場合はfalse。
- 例外:
- UnsupportedOperationException- Java仮想マシンがスレッド・コンテンション監視をサポートしない場合。
- 関連項目:
- isThreadContentionMonitoringSupported()
 
 - 
setThreadContentionMonitoringEnabledvoid setThreadContentionMonitoringEnabled(boolean enable) スレッド・コンテンション監視を有効または無効にします。 デフォルト時は、スレッド・コンテンション監視が無効になっています。- パラメータ:
- enable- 有効にするには- true、無効にするには- false。
- 例外:
- UnsupportedOperationException- Java仮想マシンがスレッド・コンテンション監視をサポートしない場合。
- SecurityException- セキュリティ・マネージャが存在する場合で、呼出し元がManagementPermission("control")を持たない場合。
- 関連項目:
- isThreadContentionMonitoringSupported()
 
 - 
getCurrentThreadCpuTimelong getCurrentThreadCpuTime() 現在のスレッドの合計CPU時間をナノ秒単位で返します。 戻り値はナノ秒単位の精度ですが、必ずしもナノ秒の正確度ではありません。 実装がユーザー・モード時とシステム・モード時を区別する場合、返されるCPU時間は、ユーザー・モードまたはシステム・モードで現在のスレッドが実行した時間の合計です。このメソッドは、ローカル管理で使用する簡易メソッドであり、次を呼び出すのと同等です。 getThreadCpuTime(Thread.currentThread().getId());- 戻り値:
- CPU時間測定が有効な場合は、現在のスレッドの合計CPU時間、そうでない場合は-1。
- 例外:
- UnsupportedOperationException- Java仮想マシンが現在のスレッドのCPU時間測定をサポートしない場合。
- 関連項目:
- getCurrentThreadUserTime(),- isCurrentThreadCpuTimeSupported(),- isThreadCpuTimeEnabled(),- setThreadCpuTimeEnabled(boolean)
 
 - 
getCurrentThreadUserTimelong getCurrentThreadUserTime() 現在のスレッドがユーザー・モードで実行したCPU時間(ナノ秒単位)を返します。 戻り値はナノ秒単位の精度ですが、必ずしもナノ秒の正確度ではありません。このメソッドは、ローカル管理で使用する簡易メソッドであり、次を呼び出すのと同等です。 getThreadUserTime(Thread.currentThread().getId());- 戻り値:
- CPU時間測定が有効な場合は、現在のスレッドのユーザー・レベルCPU時間、そうでない場合は-1。
- 例外:
- UnsupportedOperationException- Java仮想マシンが現在のスレッドのCPU時間測定をサポートしない場合。
- 関連項目:
- getCurrentThreadCpuTime(),- isCurrentThreadCpuTimeSupported(),- isThreadCpuTimeEnabled(),- setThreadCpuTimeEnabled(boolean)
 
 - 
getThreadCpuTimelong getThreadCpuTime(long id) 指定されたIDのスレッドの合計CPU時間(ナノ秒単位)を返します。 戻り値はナノ秒単位の精度ですが、必ずしもナノ秒の正確度ではありません。 実装がユーザー・モード時とシステム・モード時を区別する場合、返されるCPU時間は、ユーザー・モードまたはシステム・モードでそのスレッドが実行した時間の合計です。指定されたIDのスレッドが生存していないか、存在していない場合、このメソッドは -1を返します。 CPU時間測定が無効の場合、このメソッドは-1を返します。 スレッドが起動され、生存している場合、スレッドは生存しています。スレッドが起動されたあとにCPU時間測定が有効になった場合、Java仮想マシンの実装では、CPU時間測定が起動されたポイントとしてCPU時間測定機能が有効になった時間以前の任意の時間を選択できます。 - パラメータ:
- id- スレッドのスレッドID
- 戻り値:
- 指定されたIDのスレッドが存在し、生存していて、CPU時間測定が有効な場合は、指定されたIDのスレッドの合計CPU時間、そうでない場合は-1。
- 例外:
- IllegalArgumentException-- id <= 0の場合。
- UnsupportedOperationException- Java仮想マシンがほかのスレッドのCPU時間測定をサポートしない場合。
- 関連項目:
- getThreadUserTime(long),- isThreadCpuTimeSupported(),- isThreadCpuTimeEnabled(),- setThreadCpuTimeEnabled(boolean)
 
 - 
getThreadUserTimelong getThreadUserTime(long id) 指定されたIDのスレッドがユーザー・モードで実行したCPU時間(ナノ秒単位)を返します。 戻り値はナノ秒単位の精度ですが、必ずしもナノ秒の正確度ではありません。指定されたIDのスレッドが生存していないか、存在していない場合、このメソッドは -1を返します。 CPU時間測定が無効の場合、このメソッドは-1を返します。 スレッドが起動され、生存している場合、スレッドは生存しています。スレッドが起動されたあとにCPU時間測定が有効になった場合、Java仮想マシンの実装では、CPU時間測定が起動されたポイントとしてCPU時間測定機能が有効になった時間以前の任意の時間を選択できます。 - パラメータ:
- id- スレッドのスレッドID
- 戻り値:
- 指定されたIDのスレッドが存在し、生存していて、CPU時間測定が有効な場合は、指定されたIDのスレッドのユーザー・レベルCPU時間、そうでない場合は-1。
- 例外:
- IllegalArgumentException-- id <= 0の場合。
- UnsupportedOperationException- Java仮想マシンがほかのスレッドのCPU時間測定をサポートしない場合。
- 関連項目:
- getThreadCpuTime(long),- isThreadCpuTimeSupported(),- isThreadCpuTimeEnabled(),- setThreadCpuTimeEnabled(boolean)
 
 - 
isThreadCpuTimeSupportedboolean isThreadCpuTimeSupported() Java仮想マシンの実装が任意のスレッドのCPU時間測定をサポートするかどうかをテストします。 任意のスレッドのCPU時間測定をサポートするJava仮想マシンの実装は現在のスレッドのCPU時間測定もサポートします。- 戻り値:
- Java仮想マシンが任意のスレッドのCPU時間測定をサポートする場合はtrue、そうでない場合はfalse。
 
 - 
isCurrentThreadCpuTimeSupportedboolean isCurrentThreadCpuTimeSupported() Java仮想マシンが現在のスレッドのCPU時間測定をサポートするかどうかをテストします。isThreadCpuTimeSupported()がtrueを返す場合、このメソッドはtrueを返します。- 戻り値:
- Java仮想マシンが現在のスレッドのCPU時間測定をサポートする場合はtrue、そうでない場合はfalse。
 
 - 
isThreadCpuTimeEnabledboolean isThreadCpuTimeEnabled() スレッドのCPU時間測定が有効かどうかをテストします。- 戻り値:
- スレッドのCPU時間測定が有効な場合はtrue、そうでない場合はfalse。
- 例外:
- UnsupportedOperationException- Java仮想マシンがほかのスレッドばかりでなく現在のスレッドのCPU時間測定もサポートしない場合。
- 関連項目:
- isThreadCpuTimeSupported(),- isCurrentThreadCpuTimeSupported()
 
 - 
setThreadCpuTimeEnabledvoid setThreadCpuTimeEnabled(boolean enable) スレッドのCPU時間測定を有効または無効にします。 デフォルトの設定はプラットフォームに応じて異なります。- パラメータ:
- enable- 有効にするには- true、無効にするには- false。
- 例外:
- UnsupportedOperationException- Java仮想マシンが任意のスレッドばかりでなく現在のスレッドのCPU時間測定もサポートしない場合。
- SecurityException- セキュリティ・マネージャが存在する場合で、呼出し元がManagementPermission("control")を持たない場合。
- 関連項目:
- isThreadCpuTimeSupported(),- isCurrentThreadCpuTimeSupported()
 
 - 
findMonitorDeadlockedThreadslong[] findMonitorDeadlockedThreads() オブジェクト・モニターの取得を待機していてデッドロック状態にあるスレッドのサイクルを検索します。 つまり、スレッドはブロックされ、同期ブロックに入るのを待機しているか、Object.wait呼出しのあと、同期ブロックに再入するのを待機しています。ここでは、サイクル中の別のスレッドにより保持されている別のモニターの取得を試行している間、各スレッドは1つのモニターを保有しています。公式には、スレッドが、「ほかのスレッドにより保有されるオブジェクト・モニターを待機している」関係にあるサイクルの一部である場合、スレッドはモニター・デッドロックされます。 もっとも簡単なケースについて説明すると、スレッドAは、スレッドBが所有するモニターを待機するのをブロックされ、スレッドBはスレッドAが所有するモニターを待機するのをブロックされます。 このメソッドはトラブルシューティングのために設計されていますが、同期制御のためのものではありません。 このメソッドの操作は負荷が大きくなる可能性があります。 このメソッドは、オブジェクト・モニターに関するデッドロックだけを検索します。 オブジェクト・モニターと所有可能なシンクロナイザの両方に関するデッドロックを検索するには、 findDeadlockedThreadsメソッドを使用するようにしてください。- 戻り値:
- 存在する場合は、モニター・デッドロックされているスレッドのIDの配列、そうでない場合はnull。
- 例外:
- SecurityException- セキュリティ・マネージャが存在する場合で、呼出し元がManagementPermission("monitor")を持たない場合。
- 関連項目:
- findDeadlockedThreads()
 
 - 
resetPeakThreadCountvoid resetPeakThreadCount() ピーク・スレッド・カウントをライブ・スレッドの現在の数にリセットします。- 例外:
- SecurityException- セキュリティ・マネージャが存在する場合で、呼出し元がManagementPermission("control")を持たない場合。
- 関連項目:
- getPeakThreadCount(),- getThreadCount()
 
 - 
findDeadlockedThreadslong[] findDeadlockedThreads() オブジェクト・モニターまたは所有可能なシンクロナイザの取得を待機していてデッドロック状態にあるスレッドのサイクルを検索します。 これら2種類のロックを待機しているサイクル中に、各スレッドがロックを所有していて、このサイクルのほかのスレッドによってすでに保持されている別のロックを取得しようとすると、スレッドはデッドロック状態になります。このメソッドはトラブルシューティングのために設計されていますが、同期制御のためのものではありません。 このメソッドの操作は負荷が大きくなる可能性があります。 - 戻り値:
- オブジェクト・モニターまたは所有可能なシンクロナイザがある場合に、それらを待機していてデッドロックされているスレッドのIDの配列。そうでない場合はnull。
- 例外:
- SecurityException- セキュリティ・マネージャが存在する場合で、呼出し元がManagementPermission("monitor")を持たない場合。
- UnsupportedOperationException- Java仮想マシンが所有可能なシンクロナイザの使用量のモニタリングをサポートしない場合。
- 導入されたバージョン:
- 1.6
- 関連項目:
- isSynchronizerUsageSupported(),- findMonitorDeadlockedThreads()
 
 - 
isObjectMonitorUsageSupportedboolean isObjectMonitorUsageSupported() Java仮想マシンがオブジェクト・モニターの使用量の監視をサポートするかどうかをテストします。- 戻り値:
- Java仮想マシンがオブジェクト・モニターの使用量の監視をサポートしている場合はtrue、そうでない場合はfalse。
- 導入されたバージョン:
- 1.6
- 関連項目:
- dumpAllThreads(boolean, boolean)
 
 - 
isSynchronizerUsageSupportedboolean isSynchronizerUsageSupported() Java仮想マシンが所有可能なシンクロナイザの使用量の監視をサポートするかどうかをテストします。- 戻り値:
- Java仮想マシンが所有可能なシンクロナイザの使用量の監視をサポートしている場合はtrue、そうでない場合はfalse。
- 導入されたバージョン:
- 1.6
- 関連項目:
- dumpAllThreads(boolean, boolean)
 
 - 
getThreadInfoThreadInfo[] getThreadInfo(long[] ids, boolean lockedMonitors, boolean lockedSynchronizers) スタック・トレースおよび同期情報を持つ入力配列idsにあるIDを持つスレッドごとのスレッド情報を返します。 これは、次を呼び出すのと同等です。getThreadInfo(ids, lockedMonitors, lockedSynchronizers, Integer.MAX_VALUE)- パラメータ:
- ids- スレッドIDの配列。
- lockedMonitors-- trueの場合、ロックされたすべてのモニターを取得する。
- lockedSynchronizers-- trueの場合、ロックされたすべての所有可能なシンクロナイザを取得する。
- 戻り値:
- IDの入力配列の対応する要素にIDがあるスレッドの情報を含むThreadInfoオブジェクトの配列。
- 例外:
- SecurityException- セキュリティ・マネージャが存在する場合で、呼出し元がManagementPermission("monitor")を持たない場合。
- UnsupportedOperationException-- lockedMonitorsが- trueであるが、Java仮想マシンがオブジェクト・モニターの使用量の監視をサポートしていない場合、または
- lockedSynchronizersが- trueであるが、Java仮想マシンが所有可能なシンクロナイザの使用量の監視をサポートしていない場合。
 
- 導入されたバージョン:
- 1.6
- 関連項目:
- isObjectMonitorUsageSupported(),- isSynchronizerUsageSupported()
 
 - 
getThreadInfodefault ThreadInfo[] getThreadInfo(long[] ids, boolean lockedMonitors, boolean lockedSynchronizers, int maxDepth) IDが入力配列idsにある各スレッドのスレッド情報を返します。指定された最大数の要素と同期情報のスタック・トレースが返されます。maxDepth == 0の場合、スレッドのスタック・トレースはダンプされません。このメソッドは、スレッドごとにスレッド情報のスナップショットを取得します。たとえば次のとおりです。 - 指定された最大数の要素のスタック・トレース、
- lockedMonitorsが- trueの場合はスレッドによって現在ロックされているオブジェクト・モニター、および
- lockedSynchronizersが- trueの場合はスレッドによって現在ロックされている所有可能なシンクロナイザ。
 このメソッドは、 ThreadInfoオブジェクトの配列を返します。配列の各要素は、ids配列と同じインデックスを持つスレッドに関するスレッド情報です。 指定されたIDのスレッドが生存していないか、存在しない場合、返される配列の対応する要素にnullが設定されます。 スレッドが起動され、生存している場合、スレッドは生存しています。スレッドがオブジェクト・モニターをロックしていない場合、または lockedMonitorsがfalseの場合、返されるThreadInfoオブジェクトは空のMonitorInfo配列を持ちます。 同様に、スレッドがシンクロナイザをロックしていない場合、またはlockedSynchronizersがfalseの場合、返されるThreadInfoオブジェクトは空のLockInfo配列を持ちます。lockedMonitorsパラメータおよびlockedSynchronizersパラメータの両方がfalseの場合は、次を呼び出すことに相当します。getThreadInfo(ids, maxDepth)このメソッドはトラブルシューティングのために設計されていますが、同期制御のためのものではありません。 このメソッドの操作は負荷が大きくなる可能性があります。 MBeanServerアクセス: ThreadInfoのマップ型は、ThreadInfo.fromメソッドで指定された属性を含むCompositeDataです。- 実装要件:
- デフォルト実装はUnsupportedOperationExceptionをスローします。
- パラメータ:
- ids- スレッドIDの配列。
- lockedMonitors-- trueの場合、ロックされたすべてのモニターを取得する。
- lockedSynchronizers-- trueの場合、ロックされたすべての所有可能なシンクロナイザを取得する。
- maxDepth- スタック・トレースから取得する- StackTraceElementの最大数を示します。
- 戻り値:
- IDの入力配列の対応する要素にIDがあるスレッドの情報を含むThreadInfoオブジェクトの配列。
- 例外:
- IllegalArgumentException-- maxDepthが負の場合。
- SecurityException- セキュリティ・マネージャが存在する場合で、呼出し元がManagementPermission("monitor")を持たない場合。
- UnsupportedOperationException-- lockedMonitorsが- trueであるが、Java仮想マシンがオブジェクト・モニターの使用量の監視をサポートしていない場合、または
- lockedSynchronizersが- trueであるが、Java仮想マシンが所有可能なシンクロナイザの使用量の監視をサポートしていない場合。
 
- 導入されたバージョン:
- 10
- 関連項目:
- isObjectMonitorUsageSupported(),- isSynchronizerUsageSupported()
 
 - 
dumpAllThreadsThreadInfo[] dumpAllThreads(boolean lockedMonitors, boolean lockedSynchronizers) スタック・トレースおよび同期情報を持つすべてのライブ・スレッドのスレッド情報を返します。 これは、次を呼び出すのと同等です。dumpAllThreads(lockedMonitors, lockedSynchronizers, Integer.MAX_VALUE)- パラメータ:
- lockedMonitors-- trueの場合、ロックされたすべてのモニターをダンプする。
- lockedSynchronizers-- trueの場合、ロックされたすべての所有可能なシンクロナイザをダンプする。
- 戻り値:
- すべてのライブ・スレッドのThreadInfoの配列。
- 例外:
- SecurityException- セキュリティ・マネージャが存在する場合で、呼出し元がManagementPermission("monitor")を持たない場合。
- UnsupportedOperationException-- lockedMonitorsが- trueであるが、Java仮想マシンがオブジェクト・モニターの使用量の監視をサポートしていない場合、または
- lockedSynchronizersが- trueであるが、Java仮想マシンが所有可能なシンクロナイザの使用量の監視をサポートしていない場合。
 
- 導入されたバージョン:
- 1.6
- 関連項目:
- isObjectMonitorUsageSupported(),- isSynchronizerUsageSupported()
 
 - 
dumpAllThreadsdefault ThreadInfo[] dumpAllThreads(boolean lockedMonitors, boolean lockedSynchronizers, int maxDepth) 指定された最大数の要素と同期情報のスタック・トレースを持つすべてのライブ・スレッドのスレッド情報を返します。maxDepth == 0の場合、スレッドのスタック・トレースはダンプされません。 返された配列に含まれる一部のスレッドは、このメソッドが値を返したときに終了していた可能性があります。このメソッドは、 getThreadInfo(long[], boolean, boolean, int)メソッドで指定されているThreadInfoオブジェクトの配列を返します。- 実装要件:
- デフォルト実装はUnsupportedOperationExceptionをスローします。
- パラメータ:
- lockedMonitors-- trueの場合、ロックされたすべてのモニターをダンプする。
- lockedSynchronizers-- trueの場合、ロックされたすべての所有可能なシンクロナイザをダンプする。
- maxDepth- スタック・トレースから取得する- StackTraceElementの最大数を示します。
- 戻り値:
- すべてのライブ・スレッドのThreadInfoの配列。
- 例外:
- IllegalArgumentException-- maxDepthが負の場合。
- SecurityException- セキュリティ・マネージャが存在する場合で、呼出し元がManagementPermission("monitor")を持たない場合。
- UnsupportedOperationException-- lockedMonitorsが- trueであるが、Java仮想マシンがオブジェクト・モニターの使用量の監視をサポートしていない場合、または
- lockedSynchronizersが- trueであるが、Java仮想マシンが所有可能なシンクロナイザの使用量の監視をサポートしていない場合。
 
- 導入されたバージョン:
- 10
- 関連項目:
- isObjectMonitorUsageSupported(),- isSynchronizerUsageSupported()
 
 
- 
 
-