fa520c9ac1 | ||
---|---|---|
src/main/java/io/dama/ffi/parcoord/dining/cond | ||
.gitignore | ||
README.md | ||
pom.xml |
README.md
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