public class testcountdownlatch catch (exception e) finally}}
};t.start();
system.out.println("c");
start.countdown();
// 到達此處時,由於finally中已經呼叫了三次countdown()方法,計數已經是0了
// 所以此處就不會被阻塞
end.await();
system.out.println("d");
}/**
* @param args
* @throws interruptedexception
*/public static void main(string args) throws interruptedexception
} }
};t.start();
system.out.println("c");
start.countdown();
// 到達此處時,由於finally中已經呼叫了三次countdown()方法,計數已經是0了
// 所以此處就不會被阻塞
end.await();
system.out.println("d");
}/**
* @param args
* @throws interruptedexception
*/public static void main(string args) throws interruptedexception
}
countdownlatch是乙個靈活的閉鎖實現,何為閉鎖?閉鎖可以用來確保特定活動直到其他活動完成後才發生,例如:1,確保乙個資源不會執行,直到它需要的資源初始化完成;2,確保乙個服務不會開始,直到它依賴的其他服務都已啟動;3,等待,知道活動的所有部分都為繼續處理做好準備,比如多玩家的遊戲中的所有玩家是否都已準備就緒。countdown()方法用來對計數器進行自減操作,await方法當計數器不為零時會一直阻塞直到計數器為0,當計數器為零時,所有阻塞的操作都會開始執行 java 多執行緒 CountDownLatch用法
countdownlatch,乙個同步輔助類,在完成一組正在其他執行緒中執行的操作之前,它允許乙個或多個執行緒一直等待。主要方法 public countdownlatch int count public void countdown public void await throws interr...
java多執行緒CountDownLatch用法
countdownlatch,乙個同步輔助類,在完成一組正在其他執行緒中執行的操作之前,它允許乙個或多個執行緒一直等待。主要方法 public countdownlatch int count public voidcountdown public voidawait throws interrup...
閉鎖 CountDownLatch 原始碼
成員sync 所含方法 await await long,timeunit countdown,getcount 內部靜態類sync extends abstractqueuedsynchronizer 1 兩個公開方法,await和countdown,不存在獲取資源的操作,在初始化的時候已經設定s...