import java.util.ArrayList; import java.util.concurrent.CountDownLatch; public class Postbud implements Runnable { private String navn, selskap; private Postterminal terminal; private Utleveringssted utleveringssted; private ArrayList pakker = new ArrayList<>(); private CountDownLatch latch; public Postbud(String na, String sel, Postterminal term, Utleveringssted sted, CountDownLatch la) { navn = na; selskap = sel; terminal = term; utleveringssted = sted; latch = la; } @Override public void run() { boolean pakker?Hente = true; while (pakker?Hente) { Pakke pakke = terminal.hentPakke(this); // Fabrikkene er ferdig if (pakke == null) { pakker?Hente = false; } else { // fikk en faktisk Pakke pakker.add(pakke); utleveringssted.leverPakke(pakke); } try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } } latch.countDown(); } public String hentNavn() { return navn; } public void skrivPakkeInnhold() { for (Pakke pakke : pakker) { System.out.println(pakke); } } }