Volatile ist ein Qualifikationsmerkmal, das zum Definieren eines Datenspeicherbereichs (Objekt, Feld, Variable, Parameter) verwendet wird, der "sich selbst ändern kann", wodurch einige Code-Generator-Optimierungen nicht zulässig sind. In einigen aber nicht allen Sprachen, die diesen Qualifier erkennen, ist der Zugriff auf solche Daten threadsicher.
Nach einigen Vorstellungsgesprächen wollte ich ein kleines Programm schreiben, um zu überprüfen, ob i++ in Java tatsächlich nicht-atomar ist und dass man in der Praxis einige Sperren hinzufügen sollte, um sie zu schützen. Stellt sich heraus,...
03.04.2017, 07:25
Das Markieren einer Variablen als volatile in Java stellt sicher, dass jedem Thread der Wert angezeigt wird, der zuletzt geschrieben wurde, und nicht ein veralteter Wert. Ich habe mich gefragt, wie das tatsächlich erreicht wird. Gibt die JVM...
22.04.2010, 20:58
Betrachten Sie den folgenden Code:
%Vor%
Meine Absicht ist, dass PrevSample , CurrentSample und NextSample konsistent sind, auch wenn gSampleIndex während des Aufrufs von Process() aktualisiert wird.
Wird die Zuweisung zum...
12.11.2014, 11:33
Beachten Sie die folgenden Anweisungen
%Vor%
Nun habe ich versucht, einen Punkt im Standard zu finden, der mir sagt, wie sich ein Compiler verhalten soll, wenn er auf diese Anweisungen stößt. Alles, was ich finden konnte, ist, dass A (und mö...
27.11.2013, 12:44
Ich versuche, die C # Volatile-Klasse zu verstehen.
Wie ich gelesen habe:
Die Volatile.Write -Methode erzwingt den Wert in location, der geschrieben werden soll
bis zum Zeitpunkt des Anrufs. Außerdem jede frühere Programmbestellung
La...
19.06.2014, 12:52
Ich bin mehrfach darauf hingewiesen worden, dass Zugriffe auf volatile -Objekte nicht wegoptimiert werden können, aber es scheint mir, als ob dieser Abschnitt, der in den C89, C99 und C11 Standards enthalten ist, anders rät:
... Eine ta...
27.05.2015, 04:04
Ich habe bemerkt, dass clang und gcc in einigen Szenarien die Konstruktion von oder die Zuordnung zu einem flüchtigen struct , das auf dem Stack deklariert ist, optimieren. Zum Beispiel der folgende Code:
%Vor%
Kompilieren zum Thema:
%...
28.10.2017, 21:41
Mein Verständnis der Semantik von volatile in C und C ++ ist, dass es den Speicherzugriff in (beobachtbar ) Nebenwirkungen . Beim Lesen oder Schreiben in eine Memory-Mapped-Datei (oder Shared Memory) würde ich erwarten, dass der Zeiger flüch...
18.08.2017, 10:00
Ich schaue mir gerade eine Implementierung des Copy-on-Write-Sets an und möchte bestätigen, dass es Thread-sicher ist. Ich bin ziemlich sicher, dass der einzige Weg, es möglicherweise nicht ist, wenn der Compiler Anweisungen in bestimmten Method...
06.07.2012, 07:07
Diese Frage ähnelt Wenn die Eigenschaften meiner Scala-Akteure markiert sind @volatile? aber nicht sicher, ob die Antwort die gleiche ist.
Wenn beispielsweise der Fork-Join-Dispatcher konfiguriert wurde und der Status des Actors nicht durch...
15.04.2012, 20:04