CyclicBarrier 是 Java 并发包中的一个同步器,它允许一组线程在达到某个屏障点时相互等待。一旦所有线程都到达屏障点,它们就会继续执行下面的逻辑。本文将介绍 CyclicBarrier 的用法,并提供相应的源代码示例。
首先,我们需要导入 Java 并发包中的 CyclicBarrier 类:
import java.util.concurrent.CyclicBarrier;
接下来,我们可以创建一个 CyclicBarrier 实例,并指定需要等待的线程数量和到达屏障点时执行的逻辑。假设我们有三个线程需要在某个屏障点等待:
CyclicBarrier barrier = new CyclicBarrier(3, () -> {
// 所有线程达到屏障点后执行的逻辑
System.out.println("所有线程已经到达屏障点");
});
在上面的代码中,我们传入了参数 3,表示需要等待的线程数量为 3。同时,我们使用 lambda 表达式指定了达到屏障点时执行的逻辑,这里只是简单地打印一条消息。
接下来,我们创建三个线程,并让它们执行一些任务。在任务执行完毕后,我们调用 CyclicBarrier 的 await() 方法,使线程进入等待状态,直到所有线程都到达屏障点。