该类主要实现了:让一个线程等待其他线程完成后再执行的功能,好比Thread.join()。
该类的初始化需要一个整数值count,当每次调用CountDownLatch.countDown()时Count会递减。直到count降到0时,所有执行CountDownLatch.await()的方法都会返回。
初始化了一个共享变量latch,并赋予count为3
CountDownLatch latch = new CountDownLatch(3);
创建一个任务,睡眠1秒模拟执行任务,最后执行countDown
@Overridepublic void run() throw InterruptedException{System.out.println("执行任务...");Thread.sleep(1000);latch.countDown();}
主线程里执行如下方法
// 调用3个线程执行上述的任务
...
latch.await();
System.out.println("执行结束")
当三个任务线程全部执行完latch.countDown()时,main线程就会从阻塞的await()中返回,最后输出”执行结束”。
注意:CountDownLatch 只能使用一次,下一次使用要重新创建一个。
