|
JavaTM 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 Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2007 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。