閉鎖CountDownLatch的簡單實現

2021-06-12 03:20:48 字數 1071 閱讀 9073

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...