java.util.concurrent.locks.Condition
接口提供一个线程挂起执行的能力,直到给定的条件为真。 Condition
对象必须绑定到Lock
,并使用newCondition()
方法获取对象。
Condition类的方法
以下是Condition
类中可用的重要方法的列表。
1 | public void await() | 使当前线程等待,直到发出信号或中断信号。 |
2 | public boolean await(long time, TimeUnit unit) | 使当前线程等待直到发出信号或中断,或指定的等待时间过去。 |
3 | public long awaitNanos(long nanosTimeout) | 使当前线程等待直到发出信号或中断,或指定的等待时间过去。 |
4 | public long awaitUninterruptibly() | 使当前线程等待直到发出信号。 |
5 | public long awaitUntil() | 使当前线程等待直到发出信号或中断,或者指定的最后期限过去。 |
6 | public void signal() | 唤醒一个等待线程。 |
7 | public void signalAll() | 唤醒所有等待线程。 |
实例
以下TestThread
程序演示了Condition
接口的这些方法。这里我们使用signal()
通知和await()
挂起线程。