CountDownLatch用法

CountDownLatch如其所写,是一个倒计数的锁存器,当计数减至0时触发特定的事件。利用这种特性,可以让主线程等待子线程的结束。

await(long timeout, TimeUnit unit)
使当前线程在锁存器倒计数至零之前一直等待,除非线程被中断或超出了指定的等待时间。

countDown()
递减锁存器的计数,如果计数到达零,则释放所有等待线程

代码示例如下:(http://wingware.iteye.com/blog/1542725

View Code
 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();

 

 

posted @ 2012-09-11 18:06  softwa  阅读(127)  评论(0编辑  收藏  举报