CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。
CountDownLatch如其所写,是一个倒计数的锁存器,当计数减至0时触发特定的事件。利用这种特性,可以让主线程等待子线程的结束。
主要方法
public CountDownLatch(int count);
public void countDown();
public void await() throws InterruptedException
构造方法参数指定了计数的次数
countDown方法,当前线程调用此方法,则计数减一
awaint方法,调用此方法会一直阻塞当前线程,直到计时器的值为0
ExecutorService thradPool = Executors.newFixedThreadPool(5);
final CountDownLatch cl = new CountDownLatch(5);
for(int i = 0 ; i<5; i++){
thradPool.execute(new Runnable() {
@Override
public void run() {
cl.countDown();
}
}
thradPool.shutdown();
cl.await(); //全部线程执行完毕之后