随笔-159  评论-114  文章-7  trackbacks-0
CountDownLatch使得使用CountDownLatch.await()的线程(当前线程)阻塞直到所有其它拥有CountDownLatch的线程执行完毕(countDown()结果为0)。例子如下:


第18行:endLatch.await()使得主线程(main)阻塞直到endLatch.countDown()为零才继续执行,在每个线程执行完毕的时候都调用一下countDown()(第37行),所以当所有线程都执行完毕后countDown()变为零,这个时候主线程开始继续执行。

运行结果如下:(每次运行的结果可能不同)

可以试试,把第18行注释掉,执行结果如下:(每次的运行结果可能不同)


可以看到所有的线程并没有执行完毕就打印出了"All threads are finished."


posted on 2010-05-15 14:45 北国狼人的BloG 阅读(1205) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: