CountDownLatch的使用方法

CountDownLatch使得使用CountDownLatch.await()的线程(当前线程)阻塞直到所有其它拥有CountDownLatch的线程执行完毕(countDown()结果为0)。例子如下:


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

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


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



可以看到所有的线程并没有执行完毕就打印出了"All threads are finished."
转自: http://hi.baidu.com/justin_xxt/blog/item/05a006942efee142d0135e38.html

你可能感兴趣的:(java)