20230608 java.util.concurrent.locks.Condition

发布时间 2023-08-22 17:42:50作者: 流星<。)#)))≦

介绍

  • 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();
    • 唤醒所有等待的线程