Threads Sichtbarkeitssynchronisation bei CyclicBarrier

N

Nutzer654

Gast
Hallo,

in der Java-Documentation kann ich leider keinen Hinweis darauf finden, ob eine Sichtbarkeitssynchronisation bei Threads, die CyclicBarrier.await() aufrufen, stattfindet.
Kann mir jemand helfen?

Vielen Dank!
 

Marco13

Top Contributor
Da das Wort "Sichtbarkeitssynchronisation" nur 41 Ergebnisse liefert (und das erste genau dieser Thread hier ist) frage ich mal: Was meinst du?
 
N

Nutzer654

Gast
Wenn zwei Threads auf gemeinsame Variablen zugreifen dann kann es sein, dass der eine Thread nicht mitbekommt, was der andere in die Variable geschrieben hat, weil beide Threads jeweils eine eigene Kopie der Variablen in ihrem Speicherbereich haben können. Bei einer Sichtbarkeitssynchronisation schreiben alle Threads ihre Änderungen in den Hauptspeicher und alle Threads holen sich die Variablen erneut aus dem Hauptspeicher sodass jeder Thread alle Änderungen der anderen Threads mitbekommt.
 

Marco13

Top Contributor
Da die CyclicBarrier intern einen ReentrantLock verwendet, der
...the same basic behavior and semantics as the implicit monitor lock accessed using {@code synchronized} methods and statements...
hat, würde ich sagen: Ja, die findet statt. Aber das ist keine Garantie meinerseits, dass die Atomkraftwerk-Notabschaltung, die du damit vielleicht programmieren willst, auch funktionieren wird ;)
 

Oben