從字面上的意思可以知道,這個類的中文意思是「迴圈柵欄」。大概的意思就是乙個可迴圈利用的屏障。
它的作用就是會讓所有執行緒都等待完成後才會繼續下一步行動。
舉個例子,就像生活中我們會約朋友們到某個餐廳一起吃飯,有些朋友可能會早到,有些朋友可能會晚到,但是這個餐廳規定必須等到所有人到齊之後才會讓我們進去。這裡的朋友們就是各個執行緒,餐廳就是 cyclicbarrier。
public cyclicbarrier(intparties)
public cyclicbarrier(int parties, runnable barrieraction)
解析:
publicint await() throws
interruptedexception, brokenbarrierexception
public
int await(long timeout, timeunit unit) throws interruptedexception, brokenbarrierexception, timeoutexception
解析:
乙個執行緒組的執行緒需要等待所有執行緒完成任務後再繼續執行下一次任務
publicclass
cyclicbarrierdemo
@override
public
void
run()
catch
(exception e) }}
public
static
void
main(string args)
});for(int i = 0; i < threadnum; i++)
}}
列印結果:
thread-1到達柵欄 athread-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 區別 從字面上的意思可以知道,這個類的中文意思是 迴圈柵欄 大概的意思就是乙個可迴圈利用的屏障。它的作用就是會讓所有執行緒都等待完成後才會繼續下一步行動。舉個例子,就像生活中我們會約朋友們到某個餐廳一起吃飯,有些朋友可能會早到,...