8、常用辅助类
8.1、CountDownLatch
CountDownLatch:减计数器,使用场景:
乘坐飞机时,乘务服务员都要根据手中的订票人数清点人数,只有人数到齐了才关门起飞,那怎么有效精准的控制什么时候关门起飞呢,使用CountDownLatch减法计数器有效控制。
CountDownLatch 编码模型:
CountDownLatch countDownLatch = new CountDownLatch(6);
countDownLatch.countDown();
进去一个人(产生一个线程)计数器就 -1
countDownLatch.await();
阻塞等待计数器归零
package com.interview.concurrent.countdownlatch;
import java.util.concurrent.CountDownLatch;
/**
* @author yangxj
* @description 描述:减法计数器
* @date 2020/2/23 11:37
*/
public class CountDownLatchDemo {
public static void main(String[] args) {
CountDownLatch countDownLatch = new CountDownLatch(14); // 初始值14,有14个人需要上飞机
for (int i = 1; i <=14 ; i++) {
new Thread(()->{
System.out.println(Thread.currentThread().getName()+"进仓了一个人");
// 进去一个人计数器就减1
countDownLatch.countDown();
},String.valueOf(i)).start();
}
try {
countDownLatch.await(); // 阻塞等待计数器归零
} catch (InterruptedExceptio