JavaTM 2 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 物件陣列,每個陣列元素表示關聯此 ThreadInfo 的執行緒當前鎖定的物件監視器。
 LockInfo[] getLockedSynchronizers()
          返回 LockInfo 物件陣列,每個陣列元素表示關聯此 ThreadInfo 的執行緒當前鎖定的可擁有同步器
 LockInfo getLockInfo()
          返回物件的 LockInfo,與此 ThreadInfo 關聯的執行緒被阻塞並等待該物件。
 String getLockName()
          返回物件的字元串表示形式,與此 ThreadInfo 關聯的執行緒被鎖定並等待該物件。
 long getLockOwnerId()
          返回擁有對象的執行緒的 ID,與此 ThreadInfo 關聯的執行緒被阻塞並等待該物件。
 String getLockOwnerName()
          返回擁有對象的執行緒的名稱,與此 ThreadInfo 關聯的執行緒被阻塞並等待該物件。
 StackTraceElement[] getStackTrace()
          返回與此 ThreadInfo 關聯的執行緒的堆疊(stack)空間追蹤。
 long getThreadId()
          返回與此 ThreadInfo 關聯的執行緒的 ID。
 String getThreadName()
          返回與此 ThreadInfo 關聯的執行緒的名稱。
 Thread.State getThreadState()
          返回與此 ThreadInfo 關聯的執行緒的狀態。
 long getWaitedCount()
          返回與此 ThreadInfo 關聯的執行緒等待通知的總次數。
 long getWaitedTime()
          返回自從啟用執行緒爭用監視以來,與此 ThreadInfo 關聯的執行緒等待通知的近似累計時間(以毫秒為單位)。
 boolean isInNative()
          測試與此 ThreadInfo 關聯的執行緒是否通過 Java 本機介面 (JNI) 執行本機程式碼。
 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 關聯的執行緒等待通知的近似累計時間(以毫秒為單位)。即自從啟用執行緒爭用監視以來,執行緒處於 WAITINGTIMED_WAITING 狀態的總累計時間。如果執行緒爭用監視被禁用,此方法將返回 -1

Java 虛擬機器可能會使用高精度計時器測量時間。當重新啟用執行緒爭用監視時,將重置這個統計資料。

返回:
執行緒為 WAITINGTIMED_WAITING 狀態的近似累計時間(以毫秒為單位);如果禁用了執行緒爭用監視,則返回 -1
拋出:
UnsupportedOperationException - 如果 Java 虛擬機器不支持此操作。
另請參見:
ThreadMXBean.isThreadContentionMonitoringSupported(), ThreadMXBean.setThreadContentionMonitoringEnabled(boolean)

getWaitedCount

public long getWaitedCount()
返回與此 ThreadInfo 關聯的執行緒等待通知的總次數。即執行緒處於 WAITINGTIMED_WAITING 狀態的次數。

返回:
執行緒處於 WAITINGTIMED_WAITING 狀態的總次數。

getLockInfo

public LockInfo getLockInfo()
返回物件的 LockInfo,與此 ThreadInfo 關聯的執行緒被阻塞並等待該物件。 執行緒可以被阻塞並等待以下內容之一:

如果執行緒不處於以上任何狀態之一,那麼此方法返回 null

返回:
物件的 LockInfo,執行緒將鎖定並等待該物件(如果有);否則返回 null
從以下版本開始:
1.6

getLockName

public String getLockName()
返回物件的字元串表示形式,與此 ThreadInfo 關聯的執行緒被鎖定並等待該物件。此方法等效於調用:
  getLockInfo().toString()
 

如果此執行緒沒有被阻塞並等待任何物件,或者沒有任何執行緒擁有該物件,那麼此方法將返回 null

返回:
物件的字元串表示形式,執行緒在該物件上被阻塞(如果有);否則返回 null
另請參見:
getLockInfo()

getLockOwnerId

public long getLockOwnerId()
返回擁有對象的執行緒的 ID,與此 ThreadInfo 關聯的執行緒被阻塞並等待該物件。如果此執行緒沒有被阻塞並等待任何物件,或者沒有任何執行緒擁有該物件,那麼此方法將返回 -1

返回:
物件(此執行緒在其上阻塞)所有者執行緒的執行緒 ID;如果此執行緒沒有被阻塞,或者沒有任何執行緒擁有該物件,則返回 -1
另請參見:
getLockInfo()

getLockOwnerName

public String getLockOwnerName()
返回擁有對象的執行緒的名稱,與此 ThreadInfo 關聯的執行緒被阻塞並等待該物件。如果此執行緒沒有被阻塞並等待任何物件,或者沒有任何執行緒擁有該物件,那麼此方法將返回 null

返回:
擁有對象(此執行緒在其上阻塞)的執行緒的名稱;如果此執行緒沒有被阻塞,或者沒有任何執行緒擁有該物件,則返回 null
另請參見:
getLockInfo()

getStackTrace

public StackTraceElement[] getStackTrace()
返回與此 ThreadInfo 關聯的執行緒的堆疊(stack)空間追蹤。如果沒有為此執行緒資訊請求堆疊(stack)空間追蹤,此方法將返回長度為 0 的陣列。若返回的陣列不是長度為 0 的陣列,則其第一個元素代表堆疊(stack)空間頂,它是該序列中最新的方法調用。最後一個元素代表堆疊(stack)空間底,是該序列中最舊的方法調用。

某些 Java 虛擬機器在某些情況下可能會從堆疊(stack)空間追蹤中忽略一個或多個堆疊(stack)訊框。在極端情況下,沒有關於此 ThreadInfo 關聯執行緒堆疊(stack)空間追蹤資訊的虛擬機器可以從此方法返回一個長度為 0 的陣列。

返回:
執行緒的 StackTraceElement 物件陣列。

isSuspended

public boolean isSuspended()
測試與此 ThreadInfo 關聯的執行緒是否被掛起。如果已經調用了 Thread.suspend() 方法,此方法將返回 true

返回:
如果執行緒被掛起,則返回 true;否則返回 false

isInNative

public boolean isInNative()
測試與此 ThreadInfo 關聯的執行緒是否通過 Java 本機介面 (JNI) 執行本機程式碼。JNI 本機程式碼不包括虛擬機器支持程式碼或由虛擬機器產生的已編譯本機程式碼。

返回:
如果執行緒執行本機程式碼,則返回 true;否則返回 false

toString

public String toString()
返回此執行緒資訊的字元串表示形式。此字元串的格式取決於實作。 返回的字元串通常包括執行緒名執行緒 ID、它的狀態堆疊(stack)空間追蹤(如果有)。

覆寫:
類別 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 - MXBean 型別映射規則中指定的 LockInfo 的映射型別。

如果 cd 不包含此屬性,則將根據 lockName 屬性的值建構 LockInfo 物件。

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 javax.management.openmbean.CompositeData[],其元素型別是 MonitorInfo 的映射型別,MonitorInfo 在 Monitor.from 方法中指定。

如果 cd 不包含此屬性,那麼此屬性將被設置為空陣列。

lockedSynchronizers javax.management.openmbean.CompositeData[],其元素是 LockInfo 的映射型別,LockInfo 在 MXBean型別映射規則中指定。

如果 cd 不包含此屬性,那麼此屬性將被設置為空陣列。

參數:
cd - 表示 ThreadInfoCompositeData
返回:
如果 cd 不為 null,則返回由 cd 表示的 ThreadInfo 物件;否則返回 null
拋出:
IllegalArgumentException - 如果 cd 不表示具有上述屬性的 ThreadInfo

getLockedMonitors

public MonitorInfo[] getLockedMonitors()
返回 MonitorInfo 物件陣列,每個陣列元素表示關聯此 ThreadInfo 的執行緒當前鎖定的物件監視器。 如果沒有為此執行緒資訊請求任何鎖定的監視器,或者執行緒沒有鎖定任何監視器,那麼此方法返回長度為 0 的陣列。

返回:
MonitorInfo 物件陣列,表示執行緒鎖定的物件監視器。
從以下版本開始:
1.6

getLockedSynchronizers

public LockInfo[] getLockedSynchronizers()
返回 LockInfo 物件陣列,每個陣列元素表示關聯此 ThreadInfo 的執行緒當前鎖定的可擁有同步器。 如果沒有為此執行緒資訊請求任何鎖定的同步器,或者執行緒沒有鎖定任何同步器,那麼此方法返回長度為 0 的陣列。

返回:
LockInfo 物件陣列,表示執行緒鎖定的可擁有同步器。
從以下版本開始:
1.6

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only