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; +// } }