Class PHILOSOPH

java.lang.Object
  extended by java.lang.Thread
      extended by PHILOSOPH
All Implemented Interfaces:
java.lang.Runnable

public class PHILOSOPH
extends java.lang.Thread

Klasse zur Simulation eines Philosophen


Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
private  boolean halteLinkenStab
          speichert ob der linke Stab in der Hand gehalten wird
private  boolean halteRechtenStab
          speichert ob der rechte Stab in der Hand gehalten wird
private  STAB linkerStab
          Referenz auf den linken Stab
private  java.lang.String Name
          der Name des Philosphen
private  STAB rechterStab
          Referenz auf den rechten Stab
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
PHILOSOPH(java.lang.String Name, STAB linkerStab, STAB rechterStab)
          Konstruktor
 
Method Summary
private  void denken()
          zur Simulation des Denkens wird eine zufällige Zeitspanne lang gewartet
private  void essen()
          zur Simulation des Essens wird eine zufällige Zeitspanne lang gewartet, anschließend werden die Stäbchen zurückgelegt.
private  void GreifeNachStab()
          versucht irgendeinen freien Stab zu greifen
 void run()
          versucht immer wieder abwechselnd zu essen, oder falls nicht bei Stäbe in den Händen sind, nach den Stäben zu greifen.
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

Name

private java.lang.String Name
der Name des Philosphen


linkerStab

private STAB linkerStab
Referenz auf den linken Stab


rechterStab

private STAB rechterStab
Referenz auf den rechten Stab


halteRechtenStab

private boolean halteRechtenStab
speichert ob der rechte Stab in der Hand gehalten wird


halteLinkenStab

private boolean halteLinkenStab
speichert ob der linke Stab in der Hand gehalten wird

Constructor Detail

PHILOSOPH

public PHILOSOPH(java.lang.String Name,
                 STAB linkerStab,
                 STAB rechterStab)
Konstruktor

Parameters:
Name - Name des Philosphen
linkerStab - Referenz auf den linken Stab
rechterStab - Referenz auf den rechten Stab
Method Detail

denken

private void denken()
zur Simulation des Denkens wird eine zufällige Zeitspanne lang gewartet


essen

private void essen()
zur Simulation des Essens wird eine zufällige Zeitspanne lang gewartet, anschließend werden die Stäbchen zurückgelegt. Beim Aufruf dieser Methode muss bereits sichergestellt sein, dass der Philosoph beide Stäbchen in den Händen hält.


GreifeNachStab

private void GreifeNachStab()
versucht irgendeinen freien Stab zu greifen


run

public void run()
versucht immer wieder abwechselnd zu essen, oder falls nicht bei Stäbe in den Händen sind, nach den Stäben zu greifen.

Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread