初步學習 CountDownLatch

2021-10-24 09:31:08 字數 741 閱讀 7699

countdownlatch是乙個靈活的閉鎖的實現,他可以使乙個或者多個執行緒等待一組事件發生。閉鎖狀態包括乙個計數器,該計數器被初始化為乙個正數,表示需要等待的事件數量。countdown方法遞減計數器,表示有乙個事件發生了。而await方法等到計數器達到0,表示所有需要等待的事件都已經發生。如果乙個計數器值不為0,那麼await會一直阻塞到計數器為零,或者等待中的執行緒中斷,或者等待超時。

public

class

testharness

catch

(exception e)

finally}}

;}long start=system.

nanotime()

; startgate.

countdown()

; endgate.

await()

;long end=system.

nanotime()

;return end-start;

}}

上述**,testharness 建立一定數量的執行緒,利用他們併發的執行任務,使用兩個閉鎖,分別表示「起始門(startgate) 結束門(endgate)」,起始門初始值為1,結束門初始值為工作執行緒的數量,每個工作執行緒首先要做的值就是啟動門上等待,從而保證所有執行緒都就緒後才開始執行。而每個執行緒要做的最後一件事就是將呼叫結束門的countdow方法減一。

java執行緒同步之CountDownLatch

1 類說明 jdk的concurrent包中的countdownlatch類是乙個執行緒同步的輔助類,它使得執行緒可以一直等待在其它執行緒中執行的操作,直到此操作結束。countdownlatch在初始化的時候指定乙個大小值n,呼叫countdownlatch的await方法的執行緒會陷入等待之中,...

java併發程式設計之CountDownLatch

countdownlatch 主要是作用是用來維護乙個執行緒控制多個執行緒,內部是通過乙個計數器實現的,當我們建立乙個countdownlatch物件的時候,就需要指定乙個數值,這個數值就表示了執行緒的數量,每當乙個執行緒任務執行完畢,計數器就會減 1,當計數器的值變為0時,就表示所有的執行緒都已經...

多執行緒條件通行工具 CountDownLatch

countdownlatch的作用是,執行緒進入等待後,需要計數器達到0才能通行。例子1 主線程建立了若干子執行緒,主線程需要等待這若干子執行緒結束後才結束。例子2 執行緒有若干任務,分多個執行緒來完成,需要等待這若干任務被完成後,才繼續執行處理。原始碼 since 1.5 author doug ...