From 8291fbed75b921d5b7c2269bdc68b84265c66053 Mon Sep 17 00:00:00 2001 From: Shahnam Javidnia <3015418@stud.hs-mannheim.de> Date: Sat, 3 May 2025 16:12:25 +0200 Subject: [PATCH] V1.1 (cast Philosopher) --- .../src/main/java/pp/IPhilosopher.java | 2 +- .../src/main/java/pp/Philosopher.java | 19 +++++++++---------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/pp.A1-CondPhilosophers/src/main/java/pp/IPhilosopher.java b/pp.A1-CondPhilosophers/src/main/java/pp/IPhilosopher.java index d683c1f..3b5e05d 100644 --- a/pp.A1-CondPhilosophers/src/main/java/pp/IPhilosopher.java +++ b/pp.A1-CondPhilosophers/src/main/java/pp/IPhilosopher.java @@ -20,7 +20,7 @@ public interface IPhilosopher { void signal(); - boolean isEating(); +// boolean isEating(); default void log(int seat, String message) { diff --git a/pp.A1-CondPhilosophers/src/main/java/pp/Philosopher.java b/pp.A1-CondPhilosophers/src/main/java/pp/Philosopher.java index 8c400c7..9e9663e 100644 --- a/pp.A1-CondPhilosophers/src/main/java/pp/Philosopher.java +++ b/pp.A1-CondPhilosophers/src/main/java/pp/Philosopher.java @@ -7,8 +7,8 @@ import static pp.PhilosopherExperiment.*; public class Philosopher extends Thread implements IPhilosopher { private int seat; - private IPhilosopher left; - private IPhilosopher right; + private Philosopher left; + private Philosopher right; private Lock table; private Condition canEat; private boolean eating = false; @@ -18,15 +18,14 @@ public class Philosopher extends Thread implements IPhilosopher { public void setLeft(IPhilosopher left) { // TODO Auto-generated method stub // Cast auf Philosopher erforderlich - this.left = left; + this.left = (Philosopher) left; } @Override public void setRight(IPhilosopher right) { // TODO Auto-generated method stub // Cast auf Philosopher erforderlich - - this.right = right; + this.right = (Philosopher) right; } @Override @@ -36,7 +35,7 @@ public class Philosopher extends Thread implements IPhilosopher { @Override public void setTable(Lock table) { - // TODO Auto-generated method stub// + // TODO Auto-generated method stub this.table = table; this.canEat = table.newCondition(); @@ -90,7 +89,7 @@ public class Philosopher extends Thread implements IPhilosopher { private void beginEating() throws InterruptedException { table.lock(); try { - while (((Philosopher) left).eating || ((Philosopher) right).eating) { + while (left.eating || right.eating) { log(seat, "wartet"); canEat.await(); // wartet, bis signal() von einem anderen Philosophen aufgerufen wird } @@ -128,8 +127,8 @@ public class Philosopher extends Thread implements IPhilosopher { } // Gibt zurück, ob dieser Philosoph aktuell isst – wichtig für die Nachbarn. - public boolean isEating() { - return eating; - } +// public boolean isEating() { +// return eating; +// } }