PP-2022WS-PF1/README.md

35 lines
1.4 KiB
Markdown
Raw Normal View History

2022-10-21 09:40:02 +02:00
# 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