Was passiert nach dem Schreiben in eine flüchtige Variable?

9

Ich frage mich, ob das Schreiben in eine flüchtige Variable jvm zwingt, alle nichtflüchtigen Variablen mit dem Speicher zu synchronisieren, also zum Beispiel, was im folgenden Code passieren wird:

%Vor%

x wird in die Erinnerung geschrieben, aber was wird mit dir passieren? Wird es auch in Erinnerung geschrieben werden?

    
Anonymice 20.08.2011, 01:40
quelle

1 Antwort

5

Ja, gemäß den Regeln der Java-Sprachspezifikation (dritte Ausgabe) ) - insbesondere Abschnitt 17.4.4 - jeder Thread, der den neuen Wert von x sieht, wird später auch den neuen Wert von y sehen, wenn er versucht, ihn zu lesen. Threads, die x nicht lesen, sind nicht garantiert betroffen.

Beachten Sie jedoch, dass diese Garantie im Speichermodell der zweiten Edition von JLS nicht vorhanden war. Dort hatten flüchtige Lese- und Schreibvorgänge keinen Einfluss auf die Reihenfolge der nicht flüchtigen Speicherzugriffe.

    
Henning Makholm 20.08.2011 01:57
quelle

Tags und Links