CyclicBarrier 使用詳解

2022-02-10 03:18:19 字數 1562 閱讀 6286

從字面上的意思可以知道,這個類的中文意思是「迴圈柵欄」。大概的意思就是乙個可迴圈利用的屏障。

它的作用就是會讓所有執行緒都等待完成後才會繼續下一步行動。

舉個例子,就像生活中我們會約朋友們到某個餐廳一起吃飯,有些朋友可能會早到,有些朋友可能會晚到,但是這個餐廳規定必須等到所有人到齊之後才會讓我們進去。這裡的朋友們就是各個執行緒,餐廳就是 cyclicbarrier。

public cyclicbarrier(int

parties)

public cyclicbarrier(int parties, runnable barrieraction)

解析:

public

int await() throws

interruptedexception, brokenbarrierexception

public

int await(long timeout, timeunit unit) throws interruptedexception, brokenbarrierexception, timeoutexception

解析:

乙個執行緒組的執行緒需要等待所有執行緒完成任務後再繼續執行下一次任務

public

class

cyclicbarrierdemo

@override

public

void

run()

catch

(exception e) }}

public

static

void

main(string args)

});for(int i = 0; i < threadnum; i++)

}}

列印結果:

thread-1到達柵欄 a

thread-3到達柵欄 a

thread-0到達柵欄 a

thread-4到達柵欄 a

thread-2到達柵欄 a

thread-2完成最後任務

thread-2衝破柵欄 a

thread-1衝破柵欄 a

thread-3衝破柵欄 a

thread-4衝破柵欄 a

thread-0衝破柵欄 a

thread-4到達柵欄 b

thread-0到達柵欄 b

thread-3到達柵欄 b

thread-2到達柵欄 b

thread-1到達柵欄 b

thread-1完成最後任務

thread-1衝破柵欄 b

thread-0衝破柵欄 b

thread-4衝破柵欄 b

thread-2衝破柵欄 b

thread-3 衝破柵欄 b

從列印結果可以看出,所有執行緒會等待全部執行緒到達柵欄之後才會繼續執行,並且最後到達的執行緒會完成 runnable 的任務。

可以用於多執行緒計算資料,最後合併計算結果的場景。

CyclicBarrier 使用詳解

從字面上的意思可以知道,這個類的中文意思是 迴圈柵欄 大概的意思就是乙個可迴圈利用的屏障。它的作用就是會讓所有執行緒都等待完成後才會繼續下一步行動。舉個例子,就像生活中我們會約朋友們到某個餐廳一起吃飯,有些朋友可能會早到,有些朋友可能會晚到,但是這個餐廳規定必須等到所有人到齊之後才會讓我們進去。這裡...

CyclicBarrier 使用詳解

cyclicbarrier 是什麼?從字面上的意思可以知道,這個類的中文意思是 迴圈柵欄 大概的意思就是乙個可迴圈利用的屏障。它的作用就是會讓所有執行緒都等待完成後才會繼續下一步行動。舉個例子,就像生活中我們會約朋友們到某個餐廳一起吃飯,有些朋友可能會早到,有些朋友可能會晚到,但是這個餐廳規定必須等...

CyclicBarrier 使用詳解

使用場景 cyclicbarrier 與 countdownlatch 區別 從字面上的意思可以知道,這個類的中文意思是 迴圈柵欄 大概的意思就是乙個可迴圈利用的屏障。它的作用就是會讓所有執行緒都等待完成後才會繼續下一步行動。舉個例子,就像生活中我們會約朋友們到某個餐廳一起吃飯,有些朋友可能會早到,...