public class Hovedprogram { public static void main(String[] args) { int antTraader = 10; int antallKniverPerTraad = 1000; KnivMonitor knivMonitor = new KnivMonitor(); SaksMonitor saksMonitor = new SaksMonitor(); Thread[] knivProdusenter = new Thread[antTraader]; // 10 Thread[] saksProdusenter = new Thread[antTraader]; // 10 for (int i = 0; i < antTraader; i++) { knivProdusenter[i] = new Thread(new KnivProdusent(knivMonitor, antallKniverPerTraad)); saksProdusenter[i] = new Thread(new SaksProdusent(saksMonitor, knivMonitor)); knivProdusenter[i].start(); // Starter alle trådene som er knivprodusenter } System.out.println("Antall Knivprodusenter (traader): " + antTraader); System.out.println("Antall Snivprodusenter (traader): " + antTraader); System.out.println("Antall kniver totalt: " + antTraader*antallKniverPerTraad + "\n"); System.out.println("Startet alle kniv produsenter."); System.out.println("Venter paa at kniv produsenter skal bli ferdige. \n"); for (Thread knivProdusent : knivProdusenter) { try { knivProdusent.join(); // Main venter på at alle knivprodusent-trådene skal bli ferdige før vi fortsetter } catch (InterruptedException e) { System.err.println(e); } } System.out.println("Kniv produsenter ferdige.\n\n-\n"); System.out.println("Starter saks produsenter.\n"); for (Thread saksProdusent : saksProdusenter) { saksProdusent.start(); // Starter alle trådene som er saksprodusenter } for (Thread saksProdusent : saksProdusenter) { try { saksProdusent.join(); // Main venter på at alle saksprodusent-trådene skal bli ferdige før vi fortsetter } catch (InterruptedException e) { System.err.println(e); } } System.out.println("Ferdig med aa lage sakser fra kniver.\n"); System.out.println("Antall sakser produsert = " + saksMonitor.antallSakser()); } }