..
Suche
Hinweise zum Einsatz der Google Suche

Synchronisation mit Sperrvariablen, Lösungsversuch 4

Hinweise zur Benutzung der Demo
Versuchen Sie einen Ablauf zu finden, in dem sich beide Threads verklemmen!
  • Hinweis: Falls Sie oben kein Java-Applet sehen, unterstützt Ihr Browser keine Java-Applets mehr. In diesem Fall gehen Sie bitte wie folgt vor:
    • Laden Sie sich die Zip-Datei mit den Demos herunter.
    • Entpacken Sie die Datei.
    • Nun können Sie das Applet mit dem Kommando appletviewer <html-Datei> ausführen.
  • Im linken Teil sind dargestellt:
    • Die verwendeten globalen Variablen mit ihrem aktuellen Wert.
    • Ein Feld zum globalen Einzelschrittbetrieb. Bei jedem Drücken des 'Einzelschritt'-Knopfes führt ein rechenbereiter Thread die nächste Codezeile aus.
      Über die Combo-Box 'Strategie' kann die Auswahlstrategie festgelegt werden:
      • Random: zufällig
      • RR, Round Robin: die Threads werden reihum ausgewählt; ein Thread, der einen Schritt ausgeführt hat und rechenbereit ist, stellt sich hinten wieder an.
      • FIFO: ein Thread wird solange ausgeführt, bis er blockiert. Erst dann kommt der nächste Thread.
      • Prio: die Threads erhalten eine Priorität, die von links oben nach rechts unten abnimmt. Es wird immer der rechenbereite Thread mit der höchsten Priorität ausgeführt.
      • rev. Prio: die Threads erhalten eine Priorität, die von links oben nach rechts unten zunimmt. Es wird immer der rechenbereite Thread mit der höchsten Priorität ausgeführt.
  • Im rechten Teil sind die beteiligten Threads (bzw. Prozesse) mit ihrem Quellcode dargestellt.
    • Die blaugrüne Markierung zeigt die nächste auszuführende Codezeile an.
    • Eine rote Markierung bedeutet, daß der Thread in dieser Zeile aktiv wartet.
    Wenn der 'Einzelschritt'-Knopf gedrückt wird, führt der Thread die nächste Codezeile aus.
    Alle Threads werden zyklisch ausgeführt, d.h., wird am Ende des Threads ein weiterer Einzelschritt gemacht, startet der Thread wieder von vorne.
  • Zum Zurücksetzen der Demo drücken Sie den 'Reload'-Knopf Ihres Browsers.
 
Suche