CyclicBarrier2Test.java
/*
* Copyright@ 2011 www.egtry.com
*/
package egtry.thread;
import java.util.Date;
import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;
public class CyclicBarrier2Test {
public static void main(String[] args) throws BrokenBarrierException, InterruptedException {
CyclicBarrier barrier=new CyclicBarrier(2);
new Thread(new Worker(barrier)).start();
barrier.await();
System.out.println("Done Cycle 1\n");
new Thread(new Worker(barrier)).start();
barrier.await();
System.out.println("Done Cycle 2");
}
public static class Worker implements Runnable {
private CyclicBarrier barrier;
public Worker(CyclicBarrier barrier) {
this.barrier=barrier;
}
@Override
public void run() {
try {
System.out.println("Thread "+Thread.currentThread().getId()+" at: "+new Date());
barrier.await();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
}