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 阅读(1211)
评论(0) 编辑 收藏