Benutzer-Werkzeuge

Webseiten-Werkzeuge


parallelism:producerconsumer:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
parallelism:producerconsumer:start [2025/05/04 16:22] – [Passives Warten] Martin Pabstparallelism:producerconsumer:start [2025/05/04 16:25] (aktuell) – [Tidying up loose ends] Martin Pabst
Zeile 250: Zeile 250:
 {{ :parallelism:producerconsumer:java-threadstates.svg?600 |}} {{ :parallelism:producerconsumer:java-threadstates.svg?600 |}}
   * Durch den Aufruf von //wait()// des Monitor-Objekts geht der Thread in den Zustand //waiting// über. Wird später irgendwann die Methode //notify()// des Monitor-Objekts aufgerufen, so geht einer der aktuell für diesen Monitor wartenden Threads in den Zustand //runnable// über, **nicht jedoch in den Zustand running**! Erst, wenn **alle kritischen Bereiche** des Monitors vom letzten Thread verlassen wurden, wird einer der Threads vom Zustand ''runnable'' in den Zustand ''running'' versetzt und setzt seine Ausführung fort.    * Durch den Aufruf von //wait()// des Monitor-Objekts geht der Thread in den Zustand //waiting// über. Wird später irgendwann die Methode //notify()// des Monitor-Objekts aufgerufen, so geht einer der aktuell für diesen Monitor wartenden Threads in den Zustand //runnable// über, **nicht jedoch in den Zustand running**! Erst, wenn **alle kritischen Bereiche** des Monitors vom letzten Thread verlassen wurden, wird einer der Threads vom Zustand ''runnable'' in den Zustand ''running'' versetzt und setzt seine Ausführung fort. 
 +  * Der Aufruf von //wait()// bewirkt nicht nur, dass der aktuelle Thread in den Zustand //waiting// übergeht, sondern zusätzlich, dass der das lock auf das Objekt hergibt. Falls es einen anderen Thread im Zustand //runnable// gibt, der gerade auf das lock wartet, wird dieser "aufgeweckt" und darf fortfahren.
   * Jedes Objekt in Java kann Monitor sein. Es     * Jedes Objekt in Java kann Monitor sein. Es  
     * "kennt" den Thread, falls sicher einer gerade in einem seiner kritischen Bereiche befindet,     * "kennt" den Thread, falls sicher einer gerade in einem seiner kritischen Bereiche befindet,
parallelism/producerconsumer/start.txt · Zuletzt geändert: 2025/05/04 16:25 von Martin Pabst

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki