多線程併發之CyclicBarrier

CyclicBarrier介紹:

位於java.util.concurrent併發包下,是一個工具類。CyclicBarrier是循環柵欄的意思,它能阻塞一組線程直到某個事件發生。等到釋放這些線程之後,CyclicBarrier還可以重複用,所以是循環柵欄
比如我們一起包了車去遊玩,有些人早早到了有些人準時到,有些人遲到。但是無論怎樣都要等所有人都齊了,車才能開,這個車就是CyclicBarrier。而參與的這些人就是線程
應用場景:多線程分組計算

提供的方法:

構造方法:
在這裏插入圖片描述
paties:參與線程數
brrierAction:即最後一個到達線程要做什麼操作

await方法:

public int await() throws InterruptedException, BrokenBarrierException
public int await(long timeout, TimeUnit unit) throws InterruptedException, BrokenBarrierException, TimeoutException

await()被調用的時候說明線程已經達到了柵欄。

CyclicBarrier和CountDownLatch區別;
CyclicBarrier是可以重複利用的, CountDownLatch是一次性的。

總結:這是第一次聽說,學習到CyclicBarrier,之後還要多學習,努力

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章