Monitor
Ein Monitor ist ein Sprachkonzept, das Methoden und Datenstrukturen in einem Objekt kapselt, sodass diese zu jedem Zeitpunkt nur von einem Prozess benutzt werden dürfen.
- Der Monitor führt das Setzen und Freigeben von Sperren automatisch und implizit durch, wodurch Programmierfehler bei expliziten Locks vermieden werden.
- Bedingungssynchronisation: Prozesse können den Monitor mittels
wait()vorübergehend freigeben, wenn sie auf eine Bedingung warten, und durchsignal()(bzw.notifyAll()in Java) wieder deblockiert werden. - Beispiel: In Java werden Methoden durch das Schlüsselwort
synchronizedzu Monitor-Funktionen.