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 - LockInfo.from(javax.management.openmbean.CompositeData)
メソッドで指定された、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[]。この型はLockInfo.from(javax.management.openmbean.CompositeData)
メソッドで指定されます。cdにこの属性が含まれない場合、この属性は空の配列に設定されます。
cd
- ThreadInfoを表すCompositeDataIllegalArgumentException
- cdが前述の属性を持つThreadInfoを表さない場合。public MonitorInfo[] getLockedMonitors()
MonitorInfo
オブジェクトの配列を返します。各オブジェクトは、このThreadInfoに関連するスレッドによって現在ロックされているオブジェクト・モニターを表します。このスレッド情報についてロックされたモニターが要求されなかった場合、またはスレッドによってロックされたモニターがない場合、このメソッドは長さゼロの配列を返します。public LockInfo[] getLockedSynchronizers()
LockInfo
オブジェクトの配列を返します。各オブジェクトは、このThreadInfoに関連するスレッドによって現在ロックされている所有可能なシンクロナイザを表します。このスレッド情報についてロックされたシンクロナイザが要求されなかった場合、またはスレッドによってロックされたシンクロナイザがない場合、このメソッドは長さゼロの配列を返します。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.