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