JavaTM 2 Platform
Standard Ed. 5.0

java.lang.management
クラス ThreadInfo

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

public class ThreadInfo
extends Object

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

一般的なスレッド情報

実行情報

同期の統計情報

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

MXBean のマッピング

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

導入されたバージョン:
1.5
関連項目:
ThreadMXBean.isThreadContentionMonitoringSupported()

メソッドの概要
static ThreadInfo from(CompositeData cd)
          指定された CompositeData によって表される ThreadInfo オブジェクトを返します。
 long getBlockedCount()
          この ThreadInfo に関連するスレッドが、モニターに入るか、再入するのをブロックした合計回数を返します。
 long getBlockedTime()
          スレッドコンテンション監視が有効になってから、この ThreadInfo に関連するスレッドがモニターに入るか再入するのをブロックしたおよその累積経過時間 (ミリ秒単位) を返します。
 String getLockName()
          この ThreadInfo に関連するスレッドが、モニターに入るのをブロックされた、または Object.wait メソッドにより通知されるのを待機しているモニターロックの文字列表現。
 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 状態であった合計回数

getLockName

public String getLockName()
この ThreadInfo に関連するスレッドが、モニターに入るのをブロックされた、または Object.wait メソッドにより通知されるのを待機しているモニターロックの文字列表現。返されるモニターロックの文字列表現は、オブジェクトがインスタンスとなるクラスの名前、アットマーク (@)、およびオブジェクトの「識別」ハッシュコードの符号なし 16 進表現から構成されます。返される文字列は、System.identityHashCode(java.lang.Object) メソッドの実装に応じて一意ではない可能性があります。このメソッドは以下の値に等しい文字列を返します。

 lock.getClass().getName() + '@' + Integer.toHexString(System.identityHashCode(lock))
 
ここで、lock はモニターロックオブジェクトです。

スレッドがモニターオブジェクト上でモニターに入るのをブロックしていない場合、または Object.wait 呼び出しで通知のモニターオブジェクトを待機していない場合、このメソッドは null を返します。

戻り値:
スレッドがモニターに入るのをブロックしている、または Object.wait メソッドを通じて通知を待機しているモニターロックの文字列表現。そうでない場合は null

getLockOwnerId

public long getLockOwnerId()
この ThreadInfo に関連するスレッドがブロックしているオブジェクトのモニターロックを保持しているスレッドの ID を返します。このスレッドがモニターをブロックされていないか、待機していない場合、またはスレッドがモニターロックを保持していない場合、このメソッドは -1 を返します。

戻り値:
このスレッドがブロックしているオブジェクトのモニターロックの所有者スレッドのスレッド ID。このスレッドがモニターをブロックされていないか、待機していない場合、またはスレッドがモニターロックを保持していない場合は -1
関連項目:
getLockName()

getLockOwnerName

public String getLockOwnerName()
この ThreadInfo に関連するスレッドがブロックしているオブジェクトのモニターロックを保持しているスレッドの名前を返します。このスレッドがモニターをブロックされていないか、待機していない場合、またはスレッドがモニターロックを保持していない場合、このメソッドは null を返します。

戻り値:
このスレッドがブロックしているオブジェクトのモニターロックを保持しているスレッドの名前。このスレッドがモニターをブロックされていないか、待機していない場合、またはスレッドがモニターロックを保持していない場合は null
関連項目:
getLockName()

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()
このスレッド情報の文字列表現を返します。

オーバーライド:
クラス 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
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

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

JavaTM 2 Platform
Standard Ed. 5.0

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

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