11.10.2013 Aufrufe

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

Algorithmen und Datenstrukturen Vorlesungsskript WS/SS 99-00

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

6. Verteilte Berechnungen<br />

<br />

<br />

catch (InterruptedException exc) <br />

// Besteckkasten ist wieder geschützt<br />

synchronized (canteen) <br />

// Gabeln niederlegen<br />

canteen.putFork (leftFork);<br />

canteen.putFork (rightFork);<br />

// alle wartenden Philosophen aufwecken<br />

canteen.notifyAll ();<br />

<br />

// wieder eine Weile nachdenken: THINKING<br />

try <br />

sleep ((int) (Math.random () * 5<strong>00</strong>0.0));<br />

catch (InterruptedException exc) <br />

Starten der Philosophen<br />

/**<br />

* Start Applet: Philosophen-Threads erzeugen<br />

*/<br />

public void start ()<br />

if (philosophers == null)<br />

// 5 Philosophen erzeugen <strong>und</strong> ihnen ihre<br />

// Gabeln zuweisen<br />

philosophers = new Philosopher[5];<br />

for (int i = 0; i < 5; i++)<br />

philosophers[i] =<br />

new Philosopher(i,i,(i+1 < 5 ? i+1 : 0),<br />

table, canteen);<br />

/**<br />

* Stop des Applets: alle Threads anhalten<br />

*/<br />

public void stop ()<br />

if (philosophers != null)<br />

for (int i = 0; i < 5; i++)<br />

philosophers[i].stop ();<br />

philosophers = null;<br />

132

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!