ReentrantLock Condition 线程间通信
方法介绍: boolean await() 阻塞线程 直至被唤醒 boolean await(long time, TimeUnit unit) 阻塞线程 超时自动唤醒 void signal() 唤醒一个await线程 void signalAll() 唤醒所有await线程 场景举例: 班级组织郊游, 每个到了的同学就在原地等待上大巴,先到的排在最前面, 后到的紧接着排在最后一个人后面, 直到班长来了, 班长有两种方式让让同学上车, 方式一: 班长从前往后一个一个点 点到几个上几个(按排队顺序) ------- await() + signal() 的使用 方式二: 班长直接让所有人按排队顺序上车 ----- await() + signalAll() 的使用 方式一代码如下: public static void main(String[] args) throws InterruptedException { ReentrantLock lock = new ReentrantLock(); //new condition Condition condition = lock.newCondition(); //t1线程 Thread t1 = new Thread(()->{ try { lock.lock(); System.out.println("t1到位准备