Metasperren finden sich vielfach in Implementierungen des POSIX Thread Standards [POSIX, 1996]. Dieser definiert einen abstrakten Typ pthread_mutex_t, welcher ähnlich obiger Monitorstruktur implementiert werden kann. Ein Feld der Sperrstruktur fungiert dann als Metasperre, z.B. spinlock bei LinuxThreads [Leroy, 1997]. Virtuelle Maschinen, die Synchronisation mit Hilfe solcher Thread-Bibliotheken realisieren, verwenden demnach entsprechende Strukturen. Dies gilt beispielsweise für die Sun Classic VM [Sun Microsystems, 2000a] mit native threads Option.
Die Jalapeño Virtual Machine von IBM Research [Alpern et al., 2000] ist mit minimalen Betriebssystemabhängigkeiten implementiert. Auch die Synchronisationsoperationen sind im user-level mit Hilfe zweier Instruktionen der PowerPC-Architektur [May et al., 1994] implementiert. lwarx (load reserve) lädt ein Speicherwort und vermerkt gleichzeitig eine -- nicht verpflichtende -- Reservierung der entsprechenden Cache-Line. stwcx (store conditional) speichert ein Wort, vorausgesetzt, die Reservierung der Cache-Line wurde eingehalten. Dieses Instruktionspaar lässt sich somit wie eine ,,Compare-and-Swap``-Instruktion verwenden.
Jalapeño benutzt zwei verschiedene Repräsentationen für Monitore -
thin und fat locks. Thin locks stellen eine
weitere Optimierung dar, die wir in Abschnitt 5.4.5
behandeln. Jalapeños fat locks hingegen entsprechen der oben
dargestellten Monitor-Implementierung nahezu vollständig. Ein
fat lock ist eine eigenständige Struktur, die durch ein Feld
im Objektkopf referenziert wird. Sie enthält alle Felder der
Beispielimplementierung metalock, owner, depth, entering,
waiting sowie ein sechstes Feld, welches das zugeordnete
Java-Objekt referenziert. Fat locks können nach Bedarf
verschiedenen Java-Objekten zugeordnet werden. Über das zusätzliche
sechste Feld wird das Zuordnungsprotokoll
Objekt
Monitor abgewickelt.
Auf Anwendungsebene realisierte Thread-Implementierungen, wie z.B. green threads, deaktivieren den Unterbrechungsmechanismus so lange, wie ein Thread eine Monitorstruktur manipuliert. Aus diesem Grund brauchen Monitorstrukturen nicht vor nebenläufigem Zugriff geschützt zu werden. Man kann dieses Vorgehen als degenerierte, globale Metasperre ansehen.