import java.util.concurrent.CountDownLatch; class Arbeid implements Runnable { private final CountDownLatch ferdigBarriere; Arbeid(CountDownLatch ferdig) { ferdigBarriere = ferdig; } public void run(){ System.out.println("Gjoer arbeid"); gjorArbeid(); System.out.println("Ferdig"); ferdigBarriere.countDown(); } public void gjorArbeid() { // kunne gjort noe her } } class TestCountDown { public static void main(String[] args) { int antTraader = 5; CountDownLatch ferdigBarriere = new CountDownLatch(antTraader); for (int i = 0; i < antTraader; i++) { new Thread(new Arbeid(ferdigBarriere)).start(); } try { ferdigBarriere.await(); // venter paa alle traadene } catch (InterruptedException e) {} System.out.println("Alle er ferdige!"); } }