CyclicBarrier And CountDownLatch
CountDownLatch和CyclicBarrier簡單比較:
CountDownLatch
CyclicBarrier
軟體包
java.util.concurrent
java.util.concurrent
適用情景
主執行緒等待多個工作執行緒結束
多個執行緒之間互相等待,直到所有執行緒達到一個障礙點(Barrier point)
主要方法
CountDownLatch(int count) (主執行緒呼叫)
初始化計數
CountDownLatch.await (主執行緒呼叫)
阻塞,直到等待計數為0解除阻塞
CountDownLatch.countDown
計數減一(工作執行緒呼叫)
CyclicBarrier(int parties, Runnable barrierAction) //初始化參與者數量和障礙點執行Action,Action可選。由主執行緒初始化
CyclicBarrier.await() //由參與者呼叫
阻塞,直到所有執行緒達到屏障點
等待結束
各執行緒之間不再互相影響,可以繼續做自己的事情。不再執行下一個目標工作。
在屏障點達到後,允許所有執行緒繼續執行,達到下一個目標。可以重複使用CyclicBarrier
異常
如果其中一個執行緒由於中斷,錯誤,或超時導致永久離開屏障點,其他執行緒也將丟擲異常。
其他
如果BarrierAction不依賴於任何Party中的所有執行緒,那麼在任何party中的一個執行緒被釋放的時候,可以直接執行這個Action。
If(barrier.await()==2)
{
//do action
}
相關文章
- JUC(3)---CountDownLatch、CyclicBarrier和AQSCountDownLatchAQS
- Java併發—— CountDownLatch與CyclicBarrierJavaCountDownLatch
- Java 併發包之CountDownLatch、CyclicBarrierJavaCountDownLatch
- CountDownLatch和CyclicBarrier的簡單使用CountDownLatch
- CyclicBarrier、CountDownLatch與Semaphore的小記CountDownLatch
- CountDownLatch和CyclicBarrier區別及詳解CountDownLatch
- 高併發之ReentrantLock、CountDownLatch、CyclicBarrierReentrantLockCountDownLatch
- CountDownLatch、CyclicBarrier、Semaphore、Exchanger 的詳細解析CountDownLatch
- CyclicBarrier、CountDownLatch以及Semaphore使用及其原理分析CountDownLatch
- Java併發之CountDownLatch、CyclicBarrier和SemaphoreJavaCountDownLatch
- Java 併發工具類 CountDownLatch、CyclicBarrier、Semaphore、ExchangerJavaCountDownLatch
- 面試官:說說CountDownLatch,CyclicBarrier,Semaphore的原理?面試CountDownLatch
- 【對線面試官】CountDownLatch和CyclicBarrier的區別面試CountDownLatch
- 併發-6-wait、notify、Semaphore、CountDownLatch、CyclicBarrierAICountDownLatch
- 大白話說java併發工具類-CountDownLatch,CyclicBarrierJavaCountDownLatch
- Java併發程式設計:CountDownLatch、CyclicBarrier和SemaphoreJava程式設計CountDownLatch
- 【高併發】AQS中的CountDownLatch、Semaphore與CyclicBarrier用法總結AQSCountDownLatch
- 07 併發工具類CountDownLatch、CyclicBarrier、Semaphore使用及原始碼分析CountDownLatch原始碼
- JUC併發程式設計之Semaphore、CountDownLatch、CyclicBarrier協同工具程式設計CountDownLatch
- java多執行緒10:併發工具類CountDownLatch、CyclicBarrier和SemaphoreJava執行緒CountDownLatch
- 執行緒執行順序——CountDownLatch、CyclicBarrier 、join()、執行緒池執行緒CountDownLatch
- Java:多執行緒等待所有執行緒結束(CountDownLatch/CyclicBarrier) .Java執行緒CountDownLatch
- CountDownLatch和CyclicBarrier 傻傻的分不清?超長精美圖文又來了CountDownLatch
- java-多執行緒-CountDownLatch(閉鎖) CyclicBarrier(柵欄) Semaphore(訊號量)-Java執行緒CountDownLatch
- Java併發包5--同步工具CountDownLatch、CyclicBarrier、Semaphore的實現原理解析JavaCountDownLatch
- JUC併發系列(八):併發程式設計常用輔助類CountDownLatch與CyclicBarrier(手敲程式碼示例)程式設計CountDownLatch
- CountDownLatchCountDownLatch
- CyclicBarrier 分析
- java CyclicBarrierJava
- 詳解CountDownLatchCountDownLatch
- 手寫CountDownLatchCountDownLatch
- CyclicBarrier原始碼解析原始碼
- CyclicBarrier原始碼分析原始碼
- 同步工具類—— CountDownLatchCountDownLatch
- CountDownLatch原始碼解析CountDownLatch原始碼
- java原始碼-CountDownLatchJava原始碼CountDownLatch
- JUC:05.CountDownLatchCountDownLatch
- CountDownLatch原始碼分析CountDownLatch原始碼