|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
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()
IllegalMonitorStateException
- 如果 AbstractQueuedSynchronizer.isHeldExclusively()
返回 falsepublic final void signalAll()
IllegalMonitorStateException
- 如果 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)
特殊版本来重新获得线程。
InterruptedException
- 如果当前线程被中断(并且支持中断线程挂起)。public final long awaitNanos(long nanosTimeout) throws InterruptedException
AbstractQueuedSynchronizer.getState()
返回的锁定状态
AbstractQueuedSynchronizer.release(int)
,如果失败则抛出 IllegalMonitorStateException。
AbstractQueuedSynchronizer.acquire(int)
特殊版本来重新获得线程。
Condition
中的 awaitNanos
nanosTimeout
- 等待的最长时间,以毫微秒为单位
InterruptedException
- 如果当前线程被中断(并且支持中断线程挂起)。public final boolean awaitUntil(Date deadline) throws InterruptedException
AbstractQueuedSynchronizer.getState()
返回的锁定状态
AbstractQueuedSynchronizer.release(int)
,如果失败则抛出 IllegalMonitorStateException。
AbstractQueuedSynchronizer.acquire(int)
特殊版本来重新获得线程。
Condition
中的 awaitUntil
deadline
- 一直处于等待状态的绝对时间
InterruptedException
- 如果当前线程被中断(并且支持中断线程挂起)。public final boolean await(long time, TimeUnit unit) throws InterruptedException
AbstractQueuedSynchronizer.getState()
返回的锁定状态
AbstractQueuedSynchronizer.release(int)
,如果失败则抛出 IllegalMonitorStateException。
AbstractQueuedSynchronizer.acquire(int)
特殊版本来重新获得线程。
time
- 最长等待时间unit
- time 参数的时间单位。
InterruptedException
- 如果当前线程被中断(并且支持中断线程挂起)。protected final boolean hasWaiters()
AbstractQueuedSynchronizer.hasWaiters(java.util.concurrent.locks.AbstractQueuedSynchronizer.ConditionObject)
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. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。