20230608 java.util.concurrent.locks.Condition
介绍
- java.util.concurrent.locks.Condition
- public interface Condition
- Condition将Object监视器方法( wait 、 notify和notifyAll )分解为不同的对象,通过将它们与任意Lock实现的使用相结合,从而产生每个对象具有多个等待集的效果。
- 在Lock取代synchronized方法和语句的使用的地方, Condition取代了 Object 监视器方法的使用。
API
- await
void await() throws InterruptedException;
- 可中断
boolean await(long time, TimeUnit unit) throws InterruptedException;
- 可中断
- 如果在从方法返回之前可检测到等待时间已经过去,则为false ,否则为true
- 超时返回 false
- awaitUninterruptibly
void awaitUninterruptibly();
- awaitNanos
long awaitNanos(long nanosTimeout) throws InterruptedException;
- 返回仍需等待的时间,如果小于或等于0,表示没有时间剩余
- awaitUntil
boolean awaitUntil(Date deadline) throws InterruptedException;
- 可中断
- 如果返回时截止日期已过,则为false ,否则为true
- 超时返回 false
- signal
void signal();
- 唤醒一个等待线程
- signalAll
void signalAll();
- 唤醒所有等待的线程