volatile

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.
4
Antworten

Java-Multithreading - Verbinden eines CPU-Threads und eines volatilen Schlüsselworts

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
2
Antworten

Wie funktioniert volatile tatsächlich?

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
2
Antworten

eingebettet C - mit "flüchtig", um Konsistenz zu behaupten

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
2
Antworten

Korrektes Verhalten von trivialen Anweisungen, die Ausdrücke mit flüchtigen Variablen enthalten?

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
2
Antworten

Verständnis von Volatile.Read/Write

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
2
Antworten

Was bedeutet Abschnitt 5.1.2.3, Absatz 4 (in n1570.pdf) für Null-Operationen?

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
2
Antworten

Ist es legal, Ladenlokale / Konstruktion von flüchtigen Stack-Variablen zu optimieren?

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
3
Antworten

Speichermappierte Dateien und Zeiger auf flüchtige Objekte

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
3
Antworten

Neuordnung von Operationen in der Umgebung von volatile

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
1
Antwort

Sollten die Eigenschaften meiner Akka-Darsteller @volatile sein?

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