JavaTM Platform
Standard Ed. 6

java.lang.management
クラス ThreadInfo

java.lang.Object
  上位を拡張 java.lang.management.ThreadInfo

public class ThreadInfo
extends Object

スレッド情報です。ThreadInfo には、スレッドに関する次の情報があります。

一般的なスレッド情報

実行情報

同期の統計情報

 

このスレッド情報クラスは、同期制御用ではなく、システムの監視に使用されるよう設計されています。

MXBean のマッピング

ThreadInfo は、from メソッドに指定された属性を持つ CompositeData にマッピングされます。

導入されたバージョン:
1.5
関連項目:
ThreadMXBean.getThreadInfo(long), ThreadMXBean.dumpAllThreads(boolean, boolean)

メソッドの概要
static ThreadInfo from(CompositeData cd)
          指定された CompositeData によって表される ThreadInfo オブジェクトを返します。
 long getBlockedCount()
          この ThreadInfo に関連するスレッドが、モニターに入るか、再入するのをブロックした合計回数を返します。
 long getBlockedTime()
          スレッドコンテンション監視が有効になってから、この ThreadInfo に関連するスレッドがモニターに入るか再入するのをブロックしたおよその累積経過時間 (ミリ秒単位) を返します。
 MonitorInfo[] getLockedMonitors()
          MonitorInfo オブジェクトの配列を返します。
 LockInfo[] getLockedSynchronizers()
          LockInfo オブジェクトの配列を返します。
 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()
          このスレッド情報の文字列表現を返します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

メソッドの詳細

getThreadId

public long getThreadId()
この ThreadInfo に関連するスレッドの ID を返します。

戻り値:
関連するスレッドの ID

getThreadName

public String getThreadName()
この ThreadInfo に関連するスレッドの名前を返します。

戻り値:
関連するスレッドの名前

getThreadState

public Thread.State getThreadState()
この ThreadInfo に関連するスレッドの状態を返します。

戻り値:
関連するスレッドの Thread.State

getBlockedTime

public long getBlockedTime()
スレッドコンテンション監視が有効になってから、この ThreadInfo に関連するスレッドがモニターに入るか再入するのをブロックしたおよその累積経過時間 (ミリ秒単位) を返します。つまり、この時間は、スレッドコンテンション監視が最後に有効になってからスレッドが BLOCKED 状態になっていた合計の累積時間です。スレッドコンテンション監視が無効の場合、このスレッドは -1 を返します。  

Java 仮想マシンは高精度タイマーを使って計測できます。この統計情報は、スレッドコンテンション監視が再び有効になるとリセットされます。

戻り値:
スレッドが BLOCKED 状態に入ったおよその累積経過時間 (ミリ秒単位)。スレッドコンテンション監視が無効の場合は -1
例外:
UnsupportedOperationException - Java 仮想マシンがこの操作をサポートしていない場合
関連項目:
ThreadMXBean.isThreadContentionMonitoringSupported(), ThreadMXBean.setThreadContentionMonitoringEnabled(boolean)

getBlockedCount

public long getBlockedCount()
この ThreadInfo に関連するスレッドが、モニターに入るか、再入するのをブロックした合計回数を返します。 つまり、スレッドが BLOCKED 状態であった合計回数です。

戻り値:
スレッドが BLOCKED 状態に入った合計回数

getWaitedTime

public long getWaitedTime()
スレッドコンテンション監視が有効になってから、この ThreadInfo に関連するスレッドが通知を待機したおよその累積経過時間 (ミリ秒単位) を返します。つまり、この時間は、スレッドコンテンション監視が有効になってから、スレッドが WAITING または TIMED_WAITING 状態であった合計の累積時間です。スレッドコンテンション監視が無効の場合、このスレッドは -1 を返します。  

Java 仮想マシンは高精度タイマーを使って計測できます。この統計情報は、スレッドコンテンション監視が再び有効になるとリセットされます。

戻り値:
スレッドが WAITING または TIMED_WAITING 状態であったおよその累積経過時間 (ミリ秒単位)。スレッドコンテンション監視が無効の場合は -1
例外:
UnsupportedOperationException - Java 仮想マシンがこの操作をサポートしていない場合
関連項目:
ThreadMXBean.isThreadContentionMonitoringSupported(), ThreadMXBean.setThreadContentionMonitoringEnabled(boolean)

getWaitedCount

public long getWaitedCount()
この ThreadInfo に関連するスレッドが通知を待機した合計回数を返します。つまり、スレッドが WAITING または TIMED_WAITING 状態にあった合計回数です。

戻り値:
スレッドが WAITING または TIMED_WAITING 状態であった合計回数

getLockInfo

public LockInfo getLockInfo()
この ThreadInfo に関連するスレッドが待機するのをブロックされるオブジェクトの LockInfo を返します。スレッドは次のいずれかの待機がブロックされることがあります。  

スレッドが上記のいずれの状態でもない場合、このメソッドは null を返します。

戻り値:
スレッドが待機をブロックされているオブジェクトがある場合はそのオブジェクトの LockInfo、そうでない場合は null
導入されたバージョン:
1.6

getLockName

public String getLockName()
この ThreadInfo に関連するスレッドが待機するのをブロックされるオブジェクトの 文字列表現 を返します。このメソッドは、次を呼び出すのと同等です。
 
 getLockInfo().toString()
 
 

このスレッドがどのオブジェクトの待機もブロックされていない場合、またはオブジェクトがスレッドによって所有されていない場合、このメソッドは null を返します。

戻り値:
スレッドがブロックされている場合はそのオブジェクトの文字列表現、そうでない場合は null
関連項目:
getLockInfo()

getLockOwnerId

public long getLockOwnerId()
この ThreadInfo に関連するスレッドが待機をブロックされているオブジェクトについて、そのオブジェクトを所有するスレッドの ID を返します。このスレッドがどのオブジェクトの待機もブロックされていない場合、またはオブジェクトを所有するスレッドがない場合、このメソッドは -1 を返します。

戻り値:
このスレッドがブロックされているオブジェクトを所有しているスレッドのスレッド ID。このスレッドがブロックされていない場合、またはオブジェクトを所有するスレッドがない場合は -1
関連項目:
getLockInfo()

getLockOwnerName

public String getLockOwnerName()
この ThreadInfo に関連するスレッドが待機をブロックされているオブジェクトについて、そのオブジェクトを所有するスレッドの名前を返します。このスレッドがどのオブジェクトの待機もブロックされていない場合、またはオブジェクトがスレッドによって所有されていない場合、このメソッドは null を返します。

戻り値:
このスレッドがブロックされているオブジェクトを所有しているスレッドの名前。このスレッドがブロックされていない場合、またはオブジェクトを所有するスレッドがない場合は null
関連項目:
getLockInfo()

getStackTrace

public StackTraceElement[] getStackTrace()
この ThreadInfo に関連するスレッドのスタックトレースを返します。このスレッド情報についてスタックトレースが要求されなかった場合、このメソッドは長さゼロの配列を返します。返された配列がゼロ以外の長さの配列である場合、配列の最初の要素はスタックの最上部を表します。 これはシーケンスで呼び出されたもっとも新しいメソッドです。配列の最後の要素は、スタックの底部を表します。 これはシーケンスで呼び出されたもっとも古いメソッドです。  

Java 仮想マシンの中には、特定の状況下でスタックトレースから 1 つ以上のスタックフレームを省略するものがあります。極端な場合、この ThreadInfo に関連するスレッドのスタックトレース情報を保持しない仮想マシンが、このメソッドから長さゼロの配列を返すことが許可されます。

戻り値:
スレッドの StackTraceElement オブジェクトの配列

isSuspended

public boolean isSuspended()
この ThreadInfo に関連するスレッドが中断されているかどうかをテストします。Thread.suspend() が呼び出されていた場合、このメソッドは true を返します。

戻り値:
このスレッドが中断されている場合は true、そうでない場合は false

isInNative

public boolean isInNative()
この ThreadInfo に関連するスレッドが、JNI (Java Native Interface) を使ってネイティブコードを実行しているかどうかをテストします。JNI ネイティブコードは、仮想マシンサポートコードや仮想マシンにより生成されたコンパイル済みネイティブコードを含みません。

戻り値:
このスレッドがネイティブコードを実行している場合は true、そうでない場合は false

toString

public String toString()
このスレッド情報の文字列表現を返します。この文字列の形式は実装に依存します。通常、返される文字列には スレッド名スレッド ID、その 状態スタックトレース が含まれます。

オーバーライド:
クラス Object 内の toString
戻り値:
このスレッド情報の文字列表現

from

public static ThreadInfo from(CompositeData cd)
指定された CompositeData によって表される ThreadInfo オブジェクトを返します。特に断りがない限り、指定された CompositeData は、次の属性を含む必要があります。
属性名
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 - MXBeans型マッピングルールで指定された、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[]。この型は MXBeans型マッピングルールで指定されます。

cd にこの属性が含まれない場合、この属性は空の配列に設定されます。

パラメータ:
cd - ThreadInfo を表す CompositeData
戻り値:
cdnull でない場合は cd により表される ThreadInfo オブジェクト、そうでない場合は null
例外:
IllegalArgumentException - cd が、上記の属性を持つ ThreadInfo を表さない場合

getLockedMonitors

public MonitorInfo[] getLockedMonitors()
MonitorInfo オブジェクトの配列を返します。各オブジェクトは、この ThreadInfo に関連するスレッドによって現在ロックされているオブジェクトモニターを表します。このスレッド情報についてロックされたモニターが要求されなかった場合、またはスレッドによってロックされたモニターがない場合、このメソッドは長さゼロの配列を返します。

戻り値:
スレッドによってロックされたオブジェクトモニターを表す MonitorInfo オブジェクトの配列
導入されたバージョン:
1.6

getLockedSynchronizers

public LockInfo[] getLockedSynchronizers()
LockInfo オブジェクトの配列を返します。各オブジェクトは、この ThreadInfo に関連するスレッドによって現在ロックされている所有可能なシンクロナイザを表します。このスレッド情報についてロックされたシンクロナイザが要求されなかった場合、またはスレッドによってロックされたシンクロナイザがない場合、このメソッドは長さゼロの配列を返します。

戻り値:
スレッドによってロックされた所有可能なシンクロナイザを表す LockInfo オブジェクトの配列
導入されたバージョン:
1.6

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。