CyclicBarrier is a synchronization aid in Java that allows a set of threads to wait for each other to reach a common barrier point before any can proceed. The key feature of CyclicBarrier is that itโs cyclicโmeaning it can be reused once all threads reach the barrier, making it perfect for recurring tasks that require threads to align at multiple points.
In essence:
Fixed Number of Threads: A CyclicBarrier is created with a specified number of participating threads. All these threads must call await() to reach the barrier.
Synchronization Point: Once the required number of threads call await(), they are released together to move to the next phase.
Cyclic Nature: After the barrier is tripped, it automatically resets, allowing threads to use it again.
int numberOfThreads = 3; CyclicBarrier barrier = new CyclicBarrier(numberOfThreads, () -> { System.out.println("All threads have reached the barrier. Proceeding to the next phase."); });