CountDownLatch用法
CountDownLatch如其所写,是一个倒计数的锁存器,当计数减至0时触发特定的事件。利用这种特性,可以让主线程等待子线程的结束。
await(long timeout, TimeUnit unit)
使当前线程在锁存器倒计数至零之前一直等待,除非线程被中断或超出了指定的等待时间。
countDown()
递减锁存器的计数,如果计数到达零,则释放所有等待线程
代码示例如下:(http://wingware.iteye.com/blog/1542725)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 private static final int THREADS = 100; 2 /** 预设计数器 */ 3 final CountDownLatch ct = new CountDownLatch(THREADS); 4 for (int i = 0; i < THREADS; i++) { 5 new Thread() { 6 public void run() { 7 //做多线程操作. 8 //减1操作 9 ct.countDown(); 10 } 11 }.start(); 12 } 13 //阻塞,直到THREADS减到0为止(等待所以线程结束) 14 ct.await();