236 字
1 分钟
CyclicBarrier(同步屏障)了解吗?

CyclicBarrier(同步屏障)了解吗?#

CyclicBarrier 的字面意思是可循环使用(Cyclic)的屏障(Barrier)。它要做的事情是,让一 组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续运行。 它和 CountDownLatch 类似,都可以协调多线程的结束动作,在它们结束后都可以执行特定动作,但是为什么要有 CyclicBarrier,自然是它有和 CountDownLatch 不同的地方。 CyclicBarrier 最最核心的方法,仍然是 await():

  • 如果当前线程不是第一个到达屏障的话,它将会进入等待,直到其他线程都到达,除非发生被中断屏障被拆除屏障被重设等情况;

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

CyclicBarrier(同步屏障)了解吗?
作者
强人自传
发布于
2023-07-03
许可协议
CC BY-NC-SA 4.0