以前學多線程的時候沒有學習線程的同步工具類(輔助類)。ps:當時以爲暫時用不上,認爲是挺高深的知識點就沒去管了..面試
在前幾天,朋友發了一篇比較好的Semaphore文章過來,而後在瀏覽博客的時候又發現面試還會考,那仍是挺重要的知識點。因而花了點時間去了解一下。多線程
Java爲咱們提供了三個同步工具類:工具
這幾個工具類其實說白了就是爲了可以更好控制線程之間的通信問題~學習
- A synchronization aid that allows one or more threads to wait until a set of operations being performed in other threads completes.
簡單來講:CountDownLatch是一個同步的輔助類,容許一個或多個線程一直等待,直到其它線程完成它們的操做。spa
它經常使用的API其實就兩個:await()
和countDown()
線程
使用說明:code
countDown()
使計數器count減1。當count減到0時,全部在等待的線程均會被釋放例子:3y如今去作實習生了,其餘的員工還沒下班,3y很差意思先走,等其餘的員工都走光了,3y再走。orm