countdownlatch是一種同步幫助,允許乙個或多個執行緒等待,直到在其他執行緒中執行的一組操作完成。強調乙個執行緒或多個執行緒等待其他執行緒操作完成後才能進行操作。
例如在英雄聯盟中主線程是開始遊戲,這個主線程開始操作前需要等待10個玩家也就是其他十個執行緒全部載入完成後才能執行。
public
class
countdownlatchdemo
,i+"").
start()
;}cdl.
await()
;//當所有的countdown執行完成,或者計數器為零的時候,將喚醒等待的方法
system.out.
println
("班長鎖門走人");
}}
* countdownlatch主要有兩個方法,當乙個或多個執行緒呼叫await方法時,這些執行緒會阻塞。
* 其它執行緒呼叫countdown方法會將計數器減1(呼叫countdown方法的執行緒不會阻塞),
* 當計數器的值變為0時,因await方法阻塞的執行緒會被喚醒,繼續執行。
1號同學在上自習
2號同學在上自習
3號同學在上自習
4號同學在上自習
6號同學在上自習
8號同學在上自習
5號同學在上自習
7號同學在上自習
9號同學在上自習
10號同學在上自習
班長鎖門走人
CountDownLatch的簡單理解
countdownlatch是乙個同步工具類,用來協調多個執行緒之間的同步,或者說起到執行緒之間的通訊 而不是用作互斥的作用 countdownlatch能夠使乙個執行緒在等待另外一些執行緒完成各自工作之後,再繼續執行。使用乙個計數器進行實現。計數器初始值為執行緒的數量。當每乙個執行緒完成自己任務後...
CountDownLatch 的簡單理解
countdownlatch是乙個同步工具類,用來協調多個執行緒之間的同步,或者說起到執行緒之間的通訊 而不是用作互斥的作用 countdownlatch能夠使乙個執行緒在等待另外一些執行緒完成各自工作之後,再繼續執行。使用乙個計數器進行實現。計數器初始值為執行緒的數量。當每乙個執行緒完成自己任務後...
CountDownLatch類的分析
countdownlatch 實現 乙個或多個執行緒 等待 其他一組執行緒的操作執行完成。1 內部類 sync extends abstractqueuedsynchronizer 繼承了aqs,並實現了tryacquireshared,tryreleaseshared方法,同時擁有構造方法 syn...