|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.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 中的 signalIllegalMonitorStateException - 如果 AbstractQueuedSynchronizer.isHeldExclusively() 返回 falsepublic final void signalAll()
Condition 中的 signalAllIllegalMonitorStateException - 如果 AbstractQueuedSynchronizer.isHeldExclusively() 返回 falsepublic 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 中的 awaitInterruptedException - 如果當前執行緒被中斷(並且支持中斷執行緒掛起)
public final long awaitNanos(long nanosTimeout)
throws InterruptedException
AbstractQueuedSynchronizer.getState() 返回的鎖定狀態
AbstractQueuedSynchronizer.release(int),如果失敗則拋出 IllegalMonitorStateException。
AbstractQueuedSynchronizer.acquire(int) 特殊版本來重新獲得執行緒。
Condition 中的 awaitNanosnanosTimeout - 等待的最長時間,以毫微秒為單位
nanosTimeout 值減去花費在等待此方法的返回結果的時間的估算。正值可以用作對此方法進行後續調用的參數,來完成等待所需時間結束。小於等於零的值表示沒有剩餘時間。
InterruptedException - 如果當前執行緒被中斷(並且支持中斷執行緒掛起)
public final boolean awaitUntil(Date deadline)
throws InterruptedException
AbstractQueuedSynchronizer.getState() 返回的鎖定狀態
AbstractQueuedSynchronizer.release(int),如果失敗則拋出 IllegalMonitorStateException。
AbstractQueuedSynchronizer.acquire(int) 特殊版本來重新獲得執行緒。
Condition 中的 awaitUntildeadline - 一直處於等待狀態的絕對時間
false,否則返回 true
InterruptedException - 如果當前執行緒被中斷(並且支持中斷執行緒掛起)
public final boolean await(long time,
TimeUnit unit)
throws InterruptedException
AbstractQueuedSynchronizer.getState() 返回的鎖定狀態
AbstractQueuedSynchronizer.release(int),如果失敗則拋出 IllegalMonitorStateException。
AbstractQueuedSynchronizer.acquire(int) 特殊版本來重新獲得執行緒。
Condition 中的 awaittime - 最長等待時間unit - time 參數的時間單位
false,否則返回 true
InterruptedException - 如果當前執行緒被中斷(並且支持中斷執行緒掛起)protected final boolean hasWaiters()
AbstractQueuedSynchronizer.hasWaiters(java.util.concurrent.locks.AbstractQueuedSynchronizer.ConditionObject)。
true
IllegalMonitorStateException - 如果 AbstractQueuedSynchronizer.isHeldExclusively() 返回 falseprotected final int getWaitQueueLength()
AbstractQueuedSynchronizer.getWaitQueueLength(java.util.concurrent.locks.AbstractQueuedSynchronizer.ConditionObject)。
IllegalMonitorStateException - 如果 AbstractQueuedSynchronizer.isHeldExclusively() 返回 falseprotected 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。