|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.util.concurrent.locks.AbstractQueuedLongSynchronizer.ConditionObject
public class AbstractQueuedLongSynchronizer.ConditionObject
作為 Lock
實作基礎的 AbstractQueuedLongSynchronizer
的條件實作。
此類別的方法文檔不是一個行為規範,而是從 Lock 和 Condition 使用者的角度描述機制。此類別的導出版本通常需要附帶描述條件語義的文檔,這些語義依賴關聯 AbstractQueuedLongSynchronizer 的那些條件的語義。
此類別是可序列化的,但所有欄位都是瞬態的,因此序列化條件沒有等待執行緒。
建構子摘要 | |
---|---|
AbstractQueuedLongSynchronizer.ConditionObject()
創建一個新的 ConditionObject 實例。 |
方法摘要 | |
---|---|
void |
await()
實作可中斷的條件等待。 |
boolean |
await(long time,
TimeUnit unit)
實作定時條件等待。 |
long |
awaitNanos(long nanosTimeout)
實作定時條件等待。 |
void |
awaitUninterruptibly()
實作不可中斷的條件等待。 |
boolean |
awaitUntil(Date deadline)
實作絕對定時條件等待。 |
protected Collection<Thread> |
getWaitingThreads()
返回一個 collection,該 collection 套件含那些正在此條件等待的執行緒。 |
protected int |
getWaitQueueLength()
返回正在此條件等待的執行緒估計數。 |
protected boolean |
hasWaiters()
查詢是否有執行緒正在此條件等待。 |
void |
signal()
將等待時間最長的執行緒(如果有)從此條件的等待佇列移動到擁有鎖的等待佇列。 |
void |
signalAll()
將所有執行緒從此條件的等待佇列移動到擁有鎖的等待佇列。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
public AbstractQueuedLongSynchronizer.ConditionObject()
方法詳細資訊 |
---|
public final void signal()
Condition
中的 signal
IllegalMonitorStateException
- 如果 AbstractQueuedLongSynchronizer.isHeldExclusively()
返回 false
public final void signalAll()
Condition
中的 signalAll
IllegalMonitorStateException
- 如果 AbstractQueuedLongSynchronizer.isHeldExclusively()
返回 false
public final void awaitUninterruptibly()
AbstractQueuedLongSynchronizer.getState()
返回的鎖定狀態
AbstractQueuedLongSynchronizer.release(long)
,如果調用失敗,則拋出 IllegalMonitorStateException。
AbstractQueuedLongSynchronizer.acquire(long)
的特定版本重新獲取。
Condition
中的 awaitUninterruptibly
public final void await() throws InterruptedException
AbstractQueuedLongSynchronizer.getState()
返回的鎖定狀態
AbstractQueuedLongSynchronizer.release(long)
,如果調用失敗,則拋出 IllegalMonitorStateException。
AbstractQueuedLongSynchronizer.acquire(long)
的特定版本重新獲取。
Condition
中的 await
InterruptedException
- 如果當前執行緒被中斷(並且支持中斷執行緒掛起)public final long awaitNanos(long nanosTimeout) throws InterruptedException
AbstractQueuedLongSynchronizer.getState()
返回的鎖定狀態
AbstractQueuedLongSynchronizer.release(long)
,如果調用失敗,則拋出 IllegalMonitorStateException。
AbstractQueuedLongSynchronizer.acquire(long)
的特定版本重新獲取。
Condition
中的 awaitNanos
nanosTimeout
- 等待的最長時間,以毫微秒為單位
nanosTimeout
值減去花費在等待此方法的返回結果的時間的估算。正值可以用作對此方法進行後續調用的參數,來完成等待所需時間結束。小於等於零的值表示沒有剩餘時間。
InterruptedException
- 如果當前執行緒被中斷(並且支持中斷執行緒掛起)public final boolean awaitUntil(Date deadline) throws InterruptedException
AbstractQueuedLongSynchronizer.getState()
返回的鎖定狀態
AbstractQueuedLongSynchronizer.release(long)
,如果調用失敗,則拋出 IllegalMonitorStateException。
AbstractQueuedLongSynchronizer.acquire(long)
的特定版本重新獲取。
Condition
中的 awaitUntil
deadline
- 一直處於等待狀態的絕對時間
false
,否則返回 true
InterruptedException
- 如果當前執行緒被中斷(並且支持中斷執行緒掛起)public final boolean await(long time, TimeUnit unit) throws InterruptedException
AbstractQueuedLongSynchronizer.getState()
返回的鎖定狀態
AbstractQueuedLongSynchronizer.release(long)
,如果調用失敗,則拋出 IllegalMonitorStateException。
AbstractQueuedLongSynchronizer.acquire(long)
的特定版本重新獲取。
Condition
中的 await
time
- 最長等待時間unit
- time
參數的時間單位
false
,否則返回 true
InterruptedException
- 如果當前執行緒被中斷(並且支持中斷執行緒掛起)protected final boolean hasWaiters()
AbstractQueuedLongSynchronizer.hasWaiters(java.util.concurrent.locks.AbstractQueuedLongSynchronizer.ConditionObject)
。
true
如果沒有任何正在等待的執行緒
IllegalMonitorStateException
- 如果 AbstractQueuedLongSynchronizer.isHeldExclusively()
返回 false
protected final int getWaitQueueLength()
AbstractQueuedLongSynchronizer.getWaitQueueLength(java.util.concurrent.locks.AbstractQueuedLongSynchronizer.ConditionObject)
。
IllegalMonitorStateException
- 如果 AbstractQueuedLongSynchronizer.isHeldExclusively()
返回 false
protected final Collection<Thread> getWaitingThreads()
AbstractQueuedLongSynchronizer.getWaitingThreads(java.util.concurrent.locks.AbstractQueuedLongSynchronizer.ConditionObject)
。
IllegalMonitorStateException
- 如果 AbstractQueuedLongSynchronizer.isHeldExclusively()
返回 false
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。