go to start Ueb W8
|home |print view |recent changes |changed January 7, 2010 |
exact
|You are 50.16.36.153 <- set your identity!

Sections: '''ACHTUNG: TESTATABGABE bis 10. Nov. 2009 8:00''' | Aufgabe 1 Formel 1 Simulation | Variante A) | Variante B) | Aufgabe 2 "perfekte" Formel 1 Simulation | Aufgabe 3 - Zusatztheorie |

ACHTUNG: TESTATABGABE bis 10. Nov. 2009 8:00 ^

Aufgabe 1 Formel 1 Simulation ^

Sie haben letzte Woche mit Hilfe der klassichen Java Synchronisationsmechanismen (synchronized, wait(), notify()) ein Formel 1 Rennen simuliert. Nun sollen Sie das noch einmal mit den neu erlernten Mechanismen aus java.util.concurrent implementieren.

Variante A) ^

Verwenden Sie nur CountingLatch um das Rennen zu synchronisieren.

Schreiben Sie dazu eine Unterklasse zu AbstractRace: RaceWithLatches

Tipp: beginnen Sie zunächst damit das StartingGridReady mit einem CountingLatch, das die Autos zählt, zu sichern. Wenn Sie den Zähler eins höher initialisieren, können Sie damit den Start auslösen. Alternativ, können Sie ein separates CountingLatch, das nur bis 1 zählt für den Start benutzen.

Variante B) ^

Verwenden Sie nur CyclicBarrier um das Rennen zu synchronisieren.

Schreiben Sie dazu eine Unterklasse zu AbstractRace: RaceWithBarrier Als Zusatzfeature, soll immer eine Flagge gewunken werden, wenn die Barriere passiert wird. (Ausgabe "wave flag" auf Console).

Tipp: zählen Sie bei der Barriere nicht nur die Auto-Threads, sondern auch den main Thread mit, der die Rennkontrolle hat.

Aufgabe 2 "perfekte" Formel 1 Simulation ^

Beantworten Sie folgende Frage (abgeben):

Alle Autos auf dem Starting Grid________________________________
Rennstart
Passieren der Ziellinie
Alle Autos fertig zur Ehrenrunde
Alle Autos fertig mit der Ehrenrunde Thread.join()

Aufgabe 3 - Zusatztheorie ^

Definieren Sie mit eigenen Worten, die hier verlinkten Begriffe CyclicBarrier, CountingLatch.

Eine sehr gute Erklärung: http://www.menzsoft.ch/concurrent.htm


|home |print view |recent changes |changed January 7, 2010 |
exact
|You are 50.16.36.153 <- set your identity!

Ueb W8
go to start