Let’s say you have 3 threads, you want all threads(terms as parties) to reach a common point and then only they should proceed ahead.In this case, you can use CyclicBarrier with 3 parties and once 3 threads reach a common point, you can call an event which will implement runnable interface and Three threads will be released.
Difference between CountDownLatch and CyclicBarrier
Java CyclicBarrier example:
Step 2: Create a file named “CyclicBarrierFinishEvent.java” in package .src.org.arpit.java2blog
Step 3: Create a file named “CyclicBarrierMain.java” in package .src.org.arpit.java2blog
Thread-2 is waiting for 1 other threads to reach common barrier point
Thread-3 is waiting for 0 other threads to reach common barrier point
As 3 threads have reached common barrier point ,CyclicBarrrierFinishEvent has been triggered
You can update shared variables if any
As 3 threads have reached common barrier point Thread-3 has been released
As 3 threads have reached common barrier point Thread-1 has been released
As 3 threads have reached common barrier point Thread-2 has been released
Thread-4 is waiting for 2 other threads to reach common barrier point
Thread-5 is waiting for 1 other threads to reach common barrier point
Thread-6 is waiting for 0 other threads to reach common barrier point
As 3 threads have reached common barrier point ,CyclicBarrrierFinishEvent has been triggered
You can update shared variables if any
As 3 threads have reached common barrier point Thread-6 has been released
As 3 threads have reached common barrier point Thread-4 has been released
As 3 threads have reached common barrier point Thread-5 has been released
