import java.util.concurrent.CountDownLatch; public class Hovedprogram { public static void main(String[] args) { Kjøkken kjøkken = new Kjøkken(); CountDownLatch kundeTeller = new CountDownLatch(Kjøkken.ANT_KUNDER); // Teller ned hver gang en kunde er forsynt Thread kokk1 = new Thread(new Pizzakokk(kjøkken)); Thread kokk2 = new Thread(new Pizzakokk(kjøkken)); Thread[] kunder = new Thread[Kjøkken.ANT_KUNDER]; for (int i = 0; i < Kjøkken.ANT_KUNDER; i++){ kunder[i] = new Thread(new Kunde(kjøkken, i + 1, kundeTeller)); } kokk1.start(); kokk2.start(); for(Thread kunde : kunder){ kunde.start(); } try { kundeTeller.await(); // Stopper main- tråden fra å fortsette til telleren har nådd 0 kokk1.interrupt(); kokk2.interrupt(); // Når det ikke er flere kunder, stopper vi kokkene } catch (InterruptedException e) { System.err.println("Main- tråden ble avbrutt mens den ventet på kunder. Programmet avsluttes."); System.exit(1); } System.out.println("Alle kunder servert. Kjøkkenet stenger!"); } }