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 閱讀(1216)
評論(0) 編輯 收藏