J.U.C - 深入解读Condition条件变量原理&源码-Condition 主要方法

Condition提供了一系列的方法来阻塞和唤醒线程:

在这里插入图片描述

  • 1)await():造成当前线程在接到信号或被中断之前一直处于等待状态。
  • 2)await(long time,TimeUnit unit)​:当前线程在接到信号、被中断或到达指定等待时间之前一直处于等待状态。
  • 3)awaitNanos(long nanosTimeout)​:当前线程在接到信号、被中断或到达指定等待时间之前一直处于等待状态。返回值表示剩余时间,如果在nanosTimesout之前唤醒,那么返回值 = nanosTimeout - 消耗时间,如果返回值<= 0,则可以认定它已经超时。
  • 4)awaitUninterruptibly():当前线程在接到信号之前一直处于等待状态。注意:该方法对中断不敏感。
  • 5)awaitUntil(Date deadline)​:当前线程在接到信号、被中断或到达指定最后期限之前一直处于等待状态。如果没有到指定时间就被通知,则返回true,否则表示到了指定时间,返回false。
  • 6)signal():唤醒一个等待线程。该线程从等待方法返回前必须获得与Condition相关的锁。
  • 7)signalAll():唤醒所有等待线程。能够从等待方法返回的线程必须获得与Condition相关的锁。

上一篇:外包干了半年,快要废了。。。