java線程同步之CountDownLatch

來源:互聯網
上載者:User

1、類說明jdk的concurrent包中的CountDownLatch類是一個線程同步的輔助類,它使得線程可以一直等待在其它線程中執行的操作,直到此操作結束。CountDownLatch在初始化的時候指定一個大小值N,調用CountDownLatch的await方法的線程會陷入等待之中,直到這個CountDownLatch對象的countDown方法被調用N次為止,無論是在一個線程中調用N次,還是在N個線程中被調用一次。只有這個對應的CountDownLatch對象的countDown方法總被調用次數為N次之後,這個等待的線程才能繼續往下執行。
其原理也容易理解,初始化的時候指定要等待的計數的次數,每調用一次countDown就對這個計數減一,直到計數被減到0,等待的線程就可以繼續運行了。
2、awaitCountDownLatch的await方法會使得當前線程進入等待狀態,直到最新的一次計數被減到0為止。如果當前的計數已經是0了,那麼這個方法會馬上返回。這個函數有個代參的重載函數,可以設定一個最長的等待時間長度。在等待時間長度內,如果計數器被減到0,這個函數會返回true,或者達到等待時間長度,這個函數會返回false。(被中斷情況下拋異常)
3、countDown使計數減一,初始化的計數不能重新設定,只能通過countDown來對計數減一

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.