Java CountDownLatch JUC工具類
阿新 • • 發佈:2020-07-24
一、同步計數器CountDownLatch
1. 定義:使一個執行緒等待其他執行緒各自執行完畢後再執行。
是通過一個計數器來實現的,計數器初始值為執行緒的數量,每當一個執行緒執行完畢後,計數器的值就減1,當計數器的值為0時,表示所有的執行緒都執行完畢,然後在CountDownLatch上等待的執行緒就可以恢復執行接下來的任務,缺點是只能使用一次。
2. 常用方法說明
A.CountDownLatch(int count); // 構造方法,建立一個值為count的計數器
B.await(); // 阻塞當前執行緒,將當前執行緒加入阻塞佇列
C.await(long timeout, TimeUnit unit); // 在timeout的時間之內阻塞當前執行緒,時間一過則當前執行緒可以執行
D.countDown(); // 對計數器進行遞減1操作,當計數器遞減至0時,當前執行緒會去喚醒阻塞佇列裡的所有執行緒
3. 使用場景
A. 某一個執行緒在開始執行前等待n個執行緒執行完畢;
B. 實現多個執行緒開始執行任務的最大並行性。
4. 舉例