Erläuterungen zu den durch Pthread-Mutexe verursachten Barrieren für vollen Speicher

Ich habe gehört, dass beim Umgang mit Mutexen die erforderlichen Speicherbarrieren von der pthread-API selbst gehandhabt werden. Ich hätte gerne mehr Details zu diesem Thema.

Stimmen diese Behauptungen zumindest für die gängigsten Architekturen?Erkennt der Compiler diese implizite Barriere und vermeidet es, beim Generieren des Codes Operationen neu zu ordnen / aus lokalen Registern zu lesen?Wann wird die Speichersperre angewendet: nach erfolgreichem Erwerb eines Mutex UND nach dessen Freigabe?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage