import java.io.InterruptedIOException; import java.util.concurrent.BrokenBarrierException; import java.util.concurrent.CyclicBarrier; class EksCyclic { public static void main(String[] args) { CyclicBarrier cb = new CyclicBarrier(5); for (int i = 0; i < 5; i++) { new Thread(new TraadCyclic(i, cb)).start(); } } } class TraadCyclic implements Runnable { private CyclicBarrier cb; private int id; public TraadCyclic(int id, CyclicBarrier cb) { this.id = id; this.cb = cb; } @Override public void run() { System.out.println("Trad " + id + ": Venter forste gang"); try { cb.await(); } catch (InterruptedException | BrokenBarrierException e) { System.out.println("Ble avbrutt"); } System.out.println("Traad " + id + ": Venter andre gang"); try { cb.await(); } catch (InterruptedException | BrokenBarrierException e) { System.out.println("Ble avbrutt"); } } }