CyclicBarrier(同步屏障)了解吗?
  qPDHaeUaDv9Q 2023年11月02日 29 0

CyclicBarrier的字面意思是可循环使用(Cyclic)的屏障(Barrier)。它要做的事情是,让一 组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续运行。

它和CountDownLatch类似,都可以协调多线程的结束动作,在它们结束后都可以执行特定动作,但是为什么要有CyclicBarrier,自然是它有和CountDownLatch不同的地方。

因为CountDownLatch的使用是一次性的,无法重复利用,我们用CyclicBarrier 就可以实现,因为它可以重复利用。

CyclicBarrier最最核心的方法,仍然是await():

如果当前线程不是第一个到达屏障的话,它将会进入等待,直到其他线程都到

达,除非发生被中断、屏障被拆除、屏障被重设等情况;

上面的例子抽象一下,本质上它的流程就是这样就是这样:

CyclicBarrier(同步屏障)了解吗?_多线程

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  wtcU0l7oJED3   2023年12月23日   28   0   0 多线程Java多线程Java
qPDHaeUaDv9Q