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