java.util.concurrent · java.base · since Java 1.5

CyclicBarrier

declaration
public class CyclicBarrier

Reusable rendezvous for N parties: each await() blocks until all arrive, an optional barrier action runs, and a new generation begins — iterative simulations' heartbeat.

Key methods

CyclicBarrier(int parties, Runnable barrierAction)Action runs once per generation, by the last arriver.
int await()Wait for the others; broken barriers throw BrokenBarrierException.