該類是一個同步功能的輔助類微服,使用效果是給定一個技術(shù)趾疚,當(dāng)使用這個類的線程判斷計數(shù)不為0時,則成wait狀態(tài),如果為0時則繼續(xù)運(yùn)行糙麦。要說明的是辛孵,技術(shù)無法重置,如果需要重置計數(shù)赡磅,請考慮使用CyclicBarrier類魄缚。
初步使用:
代碼new CountDownLatch的作用是創(chuàng)建一個技術(shù)的類的對象,當(dāng)線程執(zhí)行await代碼時呈現(xiàn)等待狀態(tài)焚廊,程序不向下繼續(xù)執(zhí)行冶匹,程序執(zhí)行countDown代碼時計數(shù)由1變?yōu)?.
裁判等待全部運(yùn)動員到來:
各就各位準(zhǔn)備比賽:
該實(shí)驗雖然成功,但是并不能保證在main主線程中執(zhí)行了service.downMethod()方時咆瘟,所有的工作線程都呈wait狀態(tài)嚼隘,因為某個線程又可能準(zhǔn)備的時間較長,可能耗時超過2秒搞疗,這是如果調(diào)用該方法嗓蘑,就達(dá)不到喚醒的目的,也是說裁判沒有等待全部的運(yùn)動員到來時匿乃,就開始了比賽桩皿。
完整的比賽流程:
部分結(jié)果如下: