rendered paste bodyimport java.util.concurrent.*;class Karossserie extends Thread{ private Semaphore sem; /* Semaphor-Objekt */ private String Name; private int Dauer; Karossserie (String Name, int Dauer, Semaphore sem) { this.Name = Name; this.Dauer = Dauer; this.sem = sem; } public void run() { try { sem.acquire(); System.out.println("Das Auto " + Name + " wird gebaut."); System.out.println("Das Auto "+Name+" bekommt eine Karosserie."); sleep(Dauer); System.out.println("Die Karosserie des Autos " + Name + "ist fertig."); sem.release (); } catch (Exception e){ } }}class Fahrwerk extends Thread{ private Semaphore sem; /* Semaphor-Objekt */ private String Name; private int Dauer; Fahrwerk (String Name, int Dauer, Semaphore sem) { this.Name = Name; this.Dauer = Dauer; this.sem = sem; } public void run() { try { sem.acquire(); System.out.println("Das Auto "+Name+" bekommt das Fahrwerk."); sleep(Dauer); System.out.println("Das Fahrwerk des Autos " + Name + "ist fertig."); sem.release (); } catch (Exception e){ } }}class Elektronik extends Thread{ private Semaphore sem; /* Semaphor-Objekt */ private String Name; private int Dauer; Elektronik (String Name, int Dauer, Semaphore sem) { this.Name = Name; this.Dauer = Dauer; this.sem = sem; } public void run() { try { sem.acquire(); System.out.println("Das Auto "+Name+" bekommt die Elektronik."); sleep(Dauer); System.out.println("Die Elektronik des Autos " + Name + "ist fertig."); sem.release (); } catch (Exception e){ } }}class Innenaustattung extends Thread{ private Semaphore sem; /* Semaphor-Objekt */ private String Name; private int Dauer; Innenaustattung (String Name, int Dauer, Semaphore sem) { this.Name = Name; this.Dauer = Dauer; this.sem = sem; } public void run() { try { sem.acquire(); System.out.println("Das Auto "+Name+" bekommt die Innenaustattung."); sleep(Dauer); System.out.println("Die Innenaustattung des Autos " + Name + "ist fertig."); System.out.println("Das Auto " + Name + " is feddich."); sem.release (); } catch (Exception e){ } }}class KFZModellAuftrag extends Thread{ /* Semaphore-Objekte */ private Semaphore sem1; private Semaphore sem2; private Semaphore sem3; private Semaphore sem4; private Semaphore sem5; private String Name; /* Der Marken-Name & das Modell des Autos */ private int Karossserie_Dauer; private int Fahrwerk_Dauer; private int Motor_Dauer; private int Elektronik_Dauer; private int Innenaustattung_Dauer; KFZModellAuftrag (String Name, int Karossserie_Dauer, int Fahrwerk_Dauer, int Elektronik_Dauer, int Innenaustattung_Dauer, Semaphore sem1, Semaphore sem2, Semaphore sem3, Semaphore sem4) { this.Name = Name; this.sem1 = sem1; this.sem2 = sem2; this.sem3 = sem3; this.sem4 = sem4; this.Karossserie_Dauer = Karossserie_Dauer; this.Fahrwerk_Dauer = Fahrwerk_Dauer; this.Elektronik_Dauer = Elektronik_Dauer; this.Innenaustattung_Dauer = Innenaustattung_Dauer; } public void run () { try { Karossserie Kar = new Karossserie (Name, Karossserie_Dauer, sem1); Fahrwerk Fahr = new Fahrwerk (Name, Fahrwerk_Dauer, sem2); Elektronik Elek = new Elektronik (Name, Elektronik_Dauer, sem3); Innenaustattung Innen = new Innenaustattung (Name, Innenaustattung_Dauer, sem4); Kar.run(); Fahr.run(); Elek.run(); Innen.run(); } catch (Exception e){} }}public class Autofabrik{ public static void main (String [] args ) { Semaphore Sem1 = new Semaphore (1); Semaphore Sem2 = new Semaphore (1); Semaphore Sem3 = new Semaphore (1); Semaphore Sem4 = new Semaphore (1); Semaphore Sem5 = new Semaphore (1); //KFZModellAuftrag (String Name, int Karossserie_Dauer, int Fahrwerk_Dauer, int Elektronik_Dauer, int Innenaustattung_Dauer, Semaphore sem1, Semaphore sem2, Semaphore sem3, Semaphore sem4) KFZModellAuftrag Karre1 = new KFZModellAuftrag ("Audi A6", 784, 753, 854, 758, Sem1, Sem2, Sem3, Sem4); KFZModellAuftrag Karre2 = new KFZModellAuftrag ("Mercedes-Benz W169", 744, 517, 860, 665, Sem1, Sem2, Sem3, Sem4); KFZModellAuftrag Karre3 = new KFZModellAuftrag ("VW MC 01", 999, 516, 589, 974, Sem1, Sem2, Sem3, Sem4); KFZModellAuftrag Karre4 = new KFZModellAuftrag ("DeLorean DMC-12", 728, 583, 851, 988, Sem1, Sem2, Sem3, Sem4); KFZModellAuftrag Karre5 = new KFZModellAuftrag ("Mazda RX-7", 887, 936, 769, 781, Sem1, Sem2, Sem3, Sem4); Karre1.start(); Karre2.start(); Karre3.start(); Karre4.start(); Karre5.start(); }}