# PP-2022WS-PF1 Pflichtübung 1 von PP im WS 2022. Fällig: *Donnerstag, 27. Oktober 2022, 12:00* Bauen Sie die (synchronisierten) dinierenden Philosophen um, so dass Bedingungsvariablen benutzt werden: - Jeder Philosoph ist ein Thread und besitzt einen Warteraum, in dem die Nachbarphilosophen darauf warten, dass er seine Stäbchen freigibt. - Der Name der Klasse muss io.dama.ffi.parcoord.dining.cond.Philosopher sein. - Philosoph implementiert das Interface io.dama.ffi.parcoord.dining.cond.IPhilosopher - Jeder Philosoph hat je eine Referenz auf seinen linken und rechten Nachbarn. setLeft(IPhilosopher left); setRight( IPhilosopher right); - Der Tisch wird durch ein ReentrantLock-Objekt (Interface Lock) repräsentiert. Alle Philosophen müssen den Tisch verwenden, wenn sie beginnen zu essen. Eine Referenz auf den Tisch kann mit dem Setter übergeben werden: setTable(Lock table); - Möchte ein Philosoph beginnen zu essen, prüft er, ob sein linker Nachbar oder sein rechter Nachbar isst; er erwartet den Moment, in dem beide nicht essen. Dann beginnt er zu essen. - Wenn ein Philosoph denkt, isst er nicht und signalisiert jeweils seinem linken Nachbarn und seinem rechten Nachbarn, dass er nicht isst. Geben Sie eine Java-Datei (also nur den Quellcode) für die Klasse io.dama.ffi.parcoord.dining.cond.Philosopher ab. ## Mitglieder: - Aya Bakkar - Thomas Martin - Eren Saglam - Jonas Wächter - Yan Wittmann