CountDownLatch類原始碼解釋

2021-09-29 02:41:38 字數 1014 閱讀 4424

想直接使用,知道是幹什麼可以看下面這個。

直接看**!

1.public countdownlatch(int count) 定義初始化,可以理解倒計時count個數,或者乙個門上有count把鎖,鎖全部開啟,門才可以開啟。

public countdownlatch(int count)
2.await() 使當前執行緒等待直到倒計時器為0,如果當前計數即為0,則即可返回,計數大於0,執行緒將被禁用,並且有兩種情況發生之前休眠(一.呼叫countdown方法,二.被其他一些執行緒中斷)。如果當前執行緒在進入此方法設定了中斷狀態或是等待中斷執行緒,丟擲 interruptedexception ,當前執行緒的中斷狀態被清除。

public void await() throws interruptedexception
3.await(long timeout, timeunit unit) 自己設定時間,如果在時間內,計數器到達0,返回true,否則返回false,如果當前執行緒發生中斷,丟擲interruptedexception。

public boolean await(long timeout, timeunit unit)

throws interruptedexception

4.countdown() 減少鎖的計數,當前鎖大於0,則減一,如果等於0,則不會發生任何事情。

public void countdown()
5.getcount() 返回當前計數,看看門上還有多少把鎖,可以測試使用

public long getcount()
有機會整合一下countdownlatch和semaphore,寫乙個簡單的例子,後續更新。

CountDownLatch工具類介紹

countdownlatch是乙個同步工具類,它允許乙個或多個執行緒處於等待狀態直到在其它執行緒中執行的一組操作完成為止。countdownlatch用乙個給定的計數來實現初始化。await方法會一直處於阻塞狀態,直到countdown方法呼叫而使當前計數達到零。當計數為零之後,所有處於等待的執行緒...

同步輔助類CountDownLatch

問題 前段時間寫乙個多執行緒的爬蟲程式,要求在所有爬蟲執行緒執行結束後,執行資料庫插入操作。所以就要知道那些爬蟲執行緒什麼時候能夠全部停止。解決 1 按照以往的我的寫法,我習慣用thread類的activecount 方法,這個方法能夠返回當前執行緒組裡活動執行緒的數量。比如我開5個執行緒,加上主線...

CountDownLatch類的分析

countdownlatch 實現 乙個或多個執行緒 等待 其他一組執行緒的操作執行完成。1 內部類 sync extends abstractqueuedsynchronizer 繼承了aqs,並實現了tryacquireshared,tryreleaseshared方法,同時擁有構造方法 syn...