public class ThreadInfo extends Object
Object.wait
メソッドで待機していた、またはLockSupport.park
呼び出しにより、park が行われた。スレッドコンテンション監視
が有効になってから、スレッドが同期をブロックした、または通知を待機した累積経過時間。一部の Java 仮想マシンの実装は、この機能をサポートしていない可能性がある。ThreadMXBean.isThreadContentionMonitoringSupported()
メソッドを使って、Java 仮想マシンがこれをサポートしているかどうかを判定できます。このスレッド情報クラスは、同期制御用ではなく、システムの監視に使用されるよう設計されています。
from
メソッドで指定された属性を持つ CompositeData
にマッピングされます。ThreadMXBean.getThreadInfo(long)
, ThreadMXBean.dumpAllThreads(boolean, boolean)
修飾子と型 | メソッドと説明 |
---|---|
static ThreadInfo |
from(CompositeData cd)
指定された CompositeData によって表される ThreadInfo オブジェクトを返します。
|
long |
getBlockedCount()
この ThreadInfo に関連するスレッドが、モニターに入るか、再入するのをブロックした合計回数を返します。
|
long |
getBlockedTime()
スレッドコンテンション監視が有効になってから、この ThreadInfo に関連するスレッドがモニターに入るか再入するのをブロックしたおよその累積経過時間 (ミリ秒単位) を返します。
|
MonitorInfo[] |
getLockedMonitors()
MonitorInfo オブジェクトの配列を返します。各オブジェクトは、この ThreadInfo に関連するスレッドによって現在ロックされているオブジェクトモニターを表します。 |
LockInfo[] |
getLockedSynchronizers()
LockInfo オブジェクトの配列を返します。各オブジェクトは、この ThreadInfo に関連するスレッドによって現在ロックされている所有可能なシンクロナイザを表します。 |
LockInfo |
getLockInfo()
この ThreadInfo に関連するスレッドが待機するのをブロックされるオブジェクトの LockInfo を返します。
|
String |
getLockName()
この ThreadInfo に関連するスレッドが待機するのをブロックされるオブジェクトの
文字列表現 を返します。 |
long |
getLockOwnerId()
この ThreadInfo に関連するスレッドが待機するのをブロックされているオブジェクトについて、そのオブジェクトを所有するスレッドの ID を返します。
|
String |
getLockOwnerName()
この ThreadInfo に関連するスレッドが待機するのをブロックされているオブジェクトについて、そのオブジェクトを所有するスレッドの名前を返します。
|
StackTraceElement[] |
getStackTrace()
この ThreadInfo に関連するスレッドのスタックトレースを返します。
|
long |
getThreadId()
この ThreadInfo に関連するスレッドの ID を返します。
|
String |
getThreadName()
この ThreadInfo に関連するスレッドの名前を返します。
|
Thread.State |
getThreadState()
この ThreadInfo に関連するスレッドの状態を返します。
|
long |
getWaitedCount()
この ThreadInfo に関連するスレッドが通知を待機した合計回数を返します。
|
long |
getWaitedTime()
スレッドコンテンション監視が有効になってから、この ThreadInfo に関連するスレッドが通知を待機したおよその累積経過時間 (ミリ秒単位) を返します。
|
boolean |
isInNative()
この ThreadInfo に関連するスレッドが、JNI (Java Native Interface) を使ってネイティブコードを実行しているかどうかをテストします。
|
boolean |
isSuspended()
この ThreadInfo に関連するスレッドが中断されているかどうかをテストします。
|
String |
toString()
このスレッド情報の文字列表現を返します。
|
public long getThreadId()
public String getThreadName()
public Thread.State getThreadState()
public long getBlockedTime()
BLOCKED
状態になっていた合計の累積時間です。スレッドコンテンション監視が無効の場合、このスレッドは -1 を返します。
Java 仮想マシンは高精度タイマーを使って計測できます。この統計情報は、スレッドコンテンション監視が再び有効になるとリセットされます。
UnsupportedOperationException
- Java 仮想マシンがこの操作をサポートしていない場合。ThreadMXBean.isThreadContentionMonitoringSupported()
, ThreadMXBean.setThreadContentionMonitoringEnabled(boolean)
public long getBlockedCount()
BLOCKED
状態であった合計回数です。public long getWaitedTime()
WAITING
または TIMED_WAITING
状態であった合計の累積時間です。スレッドコンテンション監視が無効の場合、このスレッドは -1 を返します。
Java 仮想マシンは高精度タイマーを使って計測できます。この統計情報は、スレッドコンテンション監視が再び有効になるとリセットされます。
UnsupportedOperationException
- Java 仮想マシンがこの操作をサポートしていない場合。ThreadMXBean.isThreadContentionMonitoringSupported()
, ThreadMXBean.setThreadContentionMonitoringEnabled(boolean)
public long getWaitedCount()
WAITING
または TIMED_WAITING
状態にあった合計回数です。public LockInfo getLockInfo()
BLOCKED
状態である。
Object.wait
メソッドが呼び出されたため、スレッドは WAITING
または TIMED_WAITING
の状態になっています。
LockSupport.park
メソッドが呼び出されたため、スレッドは WAITING
または TIMED_WAITING
の状態になっています。同期オブジェクトとは、LockSupport.getBlocker
メソッドで返されるオブジェクトである。通常は、所有可能なシンクロナイザまたは Condition
である。スレッドが上記のいずれの状態でもない場合、このメソッドは null を返します。
public String getLockName()
文字列表現
を返します。このメソッドは、次を呼び出すのと同等です。
getLockInfo().toString()
このスレッドがどのオブジェクトの待機もブロックされていない場合、またはオブジェクトがスレッドによって所有されていない場合、このメソッドは null を返します。
getLockInfo()
public long getLockOwnerId()
getLockInfo()
public String getLockOwnerName()
getLockInfo()
public StackTraceElement[] getStackTrace()
Java 仮想マシンの中には、特定の状況下でスタックトレースから 1 つ以上のスタックフレームを省略するものがあります。極端な場合、この ThreadInfo に関連するスレッドのスタックトレース情報を保持しない仮想マシンが、このメソッドから長さゼロの配列を返すことが許可されます。
public boolean isSuspended()
Thread.suspend()
が呼び出されていた場合、このメソッドは true を返します。public boolean isInNative()
public static ThreadInfo from(CompositeData cd)
属性名 型 threadId java.lang.Long threadName java.lang.String threadState java.lang.String suspended java.lang.Boolean inNative java.lang.Boolean blockedCount java.lang.Long blockedTime java.lang.Long waitedCount java.lang.Long waitedTime java.lang.Long lockInfo javax.management.openmbean.CompositeData - MXBean の型マッピングルールで指定された、 LockInfo
のマップされた型。cd にこの属性が含まれない場合、LockInfo オブジェクトは lockName 属性の値から構築されます。
lockName java.lang.String lockOwnerId java.lang.Long lockOwnerName java.lang.String stackTrace javax.management.openmbean.CompositeData[] 各要素は、次の属性を含む StackTraceElement を表す CompositeData
属性名 型 className java.lang.String methodName java.lang.String fileName java.lang.String lineNumber java.lang.Integer nativeMethod java.lang.Boolean lockedMonitors 要素型が MonitorInfo
のマップされた型である javax.management.openmbean.CompositeData[]。この型はMonitor.from
メソッドで指定されます。cd にこの属性が含まれない場合、この属性は空の配列に設定されます。
lockedSynchronizers 要素型が LockInfo
のマップされた型である javax.management.openmbean.CompositeData[]。この型は MXBean の型マッピングルールで指定されます。cd にこの属性が含まれない場合、この属性は空の配列に設定されます。
cd
- ThreadInfo を表す CompositeDataIllegalArgumentException
- cd が前述の属性を持つ ThreadInfo を表さない場合。public MonitorInfo[] getLockedMonitors()
MonitorInfo
オブジェクトの配列を返します。各オブジェクトは、この ThreadInfo に関連するスレッドによって現在ロックされているオブジェクトモニターを表します。このスレッド情報についてロックされたモニターが要求されなかった場合、またはスレッドによってロックされたモニターがない場合、このメソッドは長さゼロの配列を返します。public LockInfo[] getLockedSynchronizers()
LockInfo
オブジェクトの配列を返します。各オブジェクトは、この ThreadInfo に関連するスレッドによって現在ロックされている所有可能なシンクロナイザを表します。このスレッド情報についてロックされたシンクロナイザが要求されなかった場合、またはスレッドによってロックされたシンクロナイザがない場合、このメソッドは長さゼロの配列を返します。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.