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 String toString()
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, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyใๅ็
งใใฆใใ ใใใ