* CountDownLatch:并发工具类
* 1.一般有两个线程类 一个线程await() 方法
* 这个方法是一个阻塞方法 当 要求的数量 减少到0的时候进行往下执行
* 2.countDown() 方法 执行一次 ,数量减1
* 3.创建 CountDownLatch 参数里面指定它的数量(并发数量)
*/
public class CountDownLauch1 {
//1.创建工具类对象:参数 指定的就是并发的数量
public static CountDownLatch countDownLatch =new CountDownLatch(10);
public static void main(String[] args) {
//1.一个司机线程
Thread d = new Driver(countDownLatch);
d.start();
for (int i = 0; i < 10; i++) {
Thread t =new Touriser(countDownLatch);
t.start();
/**
* @Author zh
* @Description 司机线程
* @Date 2021/12/6
*/
public class Driver extends Thread {
private CountDownLatch countDownLatch;
public Driver(CountDownLatch countDownLatch) {
this.countDownLatch = countDownLatch;
}
@Override
public void run() {
try {
countDownLatch.await();//阻塞方法
System.out.println("准备好了,进行发车....");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public class Touriser extends Thread {
private CountDownLatch countDownLatch;
public Touriser(CountDownLatch countDownLatch) {
this.countDownLatch = countDownLatch;
}
@Override
public void run() {
System.out.println(Thread.currentThread().getName());
countDownLatch.countDown();
}
}
}
}
}