import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier; public class CyclicBarrierDemo { public static void main(String args[]) throws InterruptedException, BrokenBarrierException { CyclicBarrier barrier = new CyclicBarrier(4); Party first = new Party(1000, barrier, "Party1"); Party second = new Party(2000, barrier, "Party2"); Party third = new Party(3000, barrier, "Party3"); Party fourth = new Party(4000, barrier, "Party4"); first.start(); second.start(); third.start(); fourth.start(); System.out.println(Thread.currentThread().getName() + " has finished"); } }