同步器是一些使線程可以等待另外一個線程的對象, 以容許他們協調工做.spa
同步器的種類 CountDownLatch, Semaphore, CyclicBarrier and Exchanger.線程
CountDownLatch倒計數同步器是一個一次性障礙, 容許一個或多個線程等待一個或多個其它線程作完某件事情.對象
調用CountDownLatch(int number)構造器初始化計數.同步
在等待線程上調用CountDownLatch.await()以阻塞線程.it
在工做線程上調用CountDownLatch.countDown()以減小計數, 當計數爲0時激活其它全部等待線程.cli
在實際工做中根據業務邏輯的複雜度, 有可能同時有多個同步器存在, 多個線程的初始化, 執行, 收尾等若是須要屢次等待則須要多個同步器.map
在使用多個同步器時 可能出現死鎖情形, 須要特別注意(很好用但也很危險).co