一、
1、簡要介紹該類的使用原理圖:
CountDownLatch是一個同步輔助類,利用它可以完成類似於阻塞當前線程的功能。換句話說,就是一個或者幾個線程一直等待,直到其它的線程運行完成。CountDown用了一個給定的計數器進行初始化,該計數器的操作是原子性的操作。同一個時刻只能有一個線程去操作該計數器。調用該類的await() 方法的線程會一直處於阻塞狀態,直到其他線程通過調用countDown操作,每次將計數器的值減去1,直到改爲0,該線程纔會停止阻塞狀態繼續運行。但是該類只能設置計數器的值一次,對於需要反覆設置計數器的值的場景不適用,需要考慮其他類。
2、countDownLatch的使用場景介紹:
如果在程序中執行,需要等待其他線程執行完成,才能進行後續操作的場景。典型應用,比如並行計算,當某個處理的運算量很大時,可以將運算拆分,並行運算。當每個子任務執行完畢後,將子任務的結果進行彙總。
註釋之前的模擬併發的示例: