Ein
Monitor in der
Informatik ist ein programmiersprachliches Konzept zur Synchronisation von Zugriffen zeitlich verschränkt oder
parallel laufender Prozesse oder
Threads auf gemeinsam genutzten Datenstrukturen oder Ressourcen. Inkonsistente Zustände der Datenstrukturen werden vermieden, ohne dass Programmierer Synchronisationsprimitive wie z. B.
Semaphore explizit nutzen müssen. Ein
wechselseitiger Ausschluss bei Zugriffen auf die gemeinsam genutzte Datenstruktur wird erreicht, indem ein
Compiler bei der Übersetzung eines Programmteils, das vom Programmierer mit Elementen der Programmiersprache als Monitor gekennzeichnet wurde, entsprechende Synchronisationsprimitive einfügt. Das Konzept wird z. B. von den Programmiersprachen
Ada,
Modula, Concurrent Pascal oder
Java realisiert.