import java.util.concurrent.CountDownLatch; class Arbeider implements Runnable { private CountDownLatch ferdigSignal; public Arbeider(CountDownLatch ferdig) { ferdigSignal = ferdig; } @Override public void run() { try { System.out.println("Gjor arbeid"); gjorArbeid(); ferdigSignal.countDown(); } catch (InterruptedException e) { } } public void gjorArbeid() throws InterruptedException {} } class TestCountdown { public static void main(String[] args) throws InterruptedException { int antTraader = 5; CountDownLatch ferdigSignal = new CountDownLatch(antTraader); for (int i = 0; i < antTraader; i++) { Thread t = new Thread(new Arbeider(ferdigSignal)); t.start(); } ferdigSignal.await(); System.out.println("Alle er ferdige!"); } }