CountDownLatch 多執行緒同步輔助類用法

coderLuo發表於2017-01-05

CountDownLatch 是一個同步工具類,它允許一個或多個執行緒一直等待,直到其他執行緒的操作執行完後再執行。


CountDownLatch是通過一個計數器來實現的,計數器的初始值為執行緒的數量。每當一個執行緒完成了自己的任務後,計數器的值就會減1。當計數器值到達0時,它表示所有的執行緒已經完成了任務,然後在閉鎖上等待的執行緒就可以恢復執行任務



使用方法如下:

// i 設定計數器
CountDownLatch cdl = new CountDownLatch(i);

// 每次呼叫這個方法,都會使計數器 -1
// 線上程中,結束時呼叫此方法,並在使用前加上finally  
finally {
     cdl.countDown();
}

// 一直阻塞當前執行緒,直到計時器的值為0
// 可以增加引數,表示超時時間 5 秒
boolean result = cdl.await(5, TimeUnit.SECONDS);


如有雷同,算我抄你的。


相關文章