CountDwonLatch(倒计时器),通常用来控制线程等待直到倒计时结束再开始执行。CountDownLatch的构造函数接受一个整数作为参数,即当前这个计数器的个数:
public CountDownLatch(int count);
CountDownLatch常用的方法:
countdown方法,指倒计时器减一,await()方法,在某个线程等待倒计时器为0后再继续执行。
应用示例:
public class CountDownLatchDemo implements Runnable {
private static CountDownLatch countDownLatch = new CountDownLatch(5);
@Override
public void run() {
try {
Thread.sleep(new Random().nextInt(2000));
System.out.println(Thread.currentThread().getName() + "执行结束");
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
countDownLatch.countDown();
}
}
public static void main(String[] args) {
CountDownLatchDemo downLatchDemo = new CountDownLatchDemo();
ExecutorService executorService = null;
try {
executorService = Executors.newFixedThreadPool(5);
for (int i = 0; i < 5; i++) {
executorService.execute(downLatchDemo);
}
countDownLatch.await();
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
System.out.println("所有线程执行完成----");
executorService.shutdown();
}
}
}