首页 > 其他分享 >CyclicBarrier和CountDownLatch的区别

CyclicBarrier和CountDownLatch的区别

时间:2022-11-04 12:31:34浏览次数:55  
标签:区别 spring 计数器 线程 student CountDownLatch CyclicBarrier


  • CountDownLatch是两组线程,第一组负责计数器减一,第二组是阻塞线程,当第一组线程将计数器减到0时,第二组线程才开始执行,放行是由第三方控制;CyclicBarrier是只有一组线程,只有当所有线程到达拦截点的时候,才会继续往下执行,放行是由一组线程本身控制。
  • CountDownLatch放行条件是大于或等于线程数;CyclicBarrier放行条件是等于线程数
  • CountDownLatch的计数器只能使用一次,而CyclicBarrier的计数器可以使用reset()方法重 置。所以CyclicBarrier能处理更为复杂的业务场景。例如,如果计算发生错误,可以重置计数 器,并让线程重新执行一次。
  • CyclicBarrier还提供其他有用的方法,比如getNumberWaiting方法可以获得Cyclic-Barrier 阻塞的线程数量。isBroken()方法用来了解阻塞的线程是否被中断。

参考

《java并发编程的艺术》

源码

​https://github.com/wyh-spring-ecosystem-student/spring-boot-student/tree/releases​

spring-boot-student-concurrent 工程


标签:区别,spring,计数器,线程,student,CountDownLatch,CyclicBarrier
From: https://blog.51cto.com/u_15861563/5823594

相关文章