Pflichtübung 1 von PP im WS 2022
Go to file
Yan Wittmann fa520c9ac1 Aufgabe 01 2022-10-23 12:03:58 +02:00
src/main/java/io/dama/ffi/parcoord/dining/cond Aufgabe 01 2022-10-23 12:03:58 +02:00
.gitignore Initial commit 2022-10-21 09:40:02 +02:00
README.md Initial project files 2022-10-21 09:51:03 +02:00
pom.xml Initial project files 2022-10-21 09:51:03 +02:00

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