其底層是由AQS提供支持,所以其數(shù)據(jù)結(jié)構(gòu)可以參考AQS的數(shù)據(jù)結(jié)構(gòu),而AQS的數(shù)據(jù)結(jié)構(gòu)核心就是兩個(gè)虛擬隊(duì)列: 同步隊(duì)列sync queue 和條件隊(duì)列condition queue,不同的條件會(huì)有不同的條件隊(duì)列。
CountDownLatch典型的用法是將一個(gè)程序分為n個(gè)互相獨(dú)立的可解決任務(wù),并創(chuàng)建值為n的CountDownLatch。當(dāng)每一個(gè)任務(wù)完成時(shí),都會(huì)在這個(gè)鎖存器上調(diào)用countDown,等待問題被解決的任務(wù)調(diào)用這個(gè)鎖存器的await,將他們自己攔住,直至鎖存器計(jì)數(shù)結(jié)束。