A thread of execution that uses a CyclicBarrier : CyclicBarrier « Threads « Java






A thread of execution that uses a CyclicBarrier

 
   
import java.util.concurrent.BrokenBarrierException;
import java.util.concurrent.CyclicBarrier;

class BarDemo {
  public static void main(String args[]) {
    CyclicBarrier cb = new CyclicBarrier(3, new BarAction());

    System.out.println("Starting");

    new MyThread(cb, "A");
    new MyThread(cb, "B");
    new MyThread(cb, "C");

  }
}

class MyThread implements Runnable {
  CyclicBarrier cbar;

  String name;

  MyThread(CyclicBarrier c, String n) {
    cbar = c;
    name = n;
    new Thread(this).start();
  }

  public void run() {

    System.out.println(name);

    try {
      cbar.await();
    } catch (BrokenBarrierException exc) {
      System.out.println(exc);
    } catch (InterruptedException exc) {
      System.out.println(exc);
    }
  }
}

class BarAction implements Runnable {
  public void run() {
    System.out.println("Barrier Reached!");
  }
}

public class MainClass {
  public static void main(String args[]) {
    CyclicBarrier cb = new CyclicBarrier(3, new BarAction());

    System.out.println("Starting");

    new MyThread(cb, "A");
    new MyThread(cb, "B");
    new MyThread(cb, "C");

    new MyThread(cb, "X");
    new MyThread(cb, "Y");
    new MyThread(cb, "Z");

  }
}

 








Related examples in the same category