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