import java.util.concurrent.CountDownLatch; class TestCountDown { public static void main(String[] args) { int antallTraader = 5; CountDownLatch ferdigSignal = new CountDownLatch(antallTraader); System.out.println("Lager og starter tr?der"); for (int i = 0; i < antallTraader; i++) { new Thread(new Arbeider(ferdigSignal)).start(); } // vise f?rst uten og s? med await try { ferdigSignal.await(); // venter p? alle tr?dene } catch (InterruptedException e) {} System.out.println("Alle er ferdige!"); } } class Arbeider implements Runnable { // m? ha referanse til barrieren private final CountDownLatch ferdigSignal; Arbeider(CountDownLatch ferdig) { ferdigSignal = ferdig; } public void run() { try { gjorArbeid(); ferdigSignal.countDown(); ferdigSignal.await(); System.out.println("de andre er ferdig"); } catch (InterruptedException ex) {} } void gjorArbeid() { System.out.println("arbeider"); } }