Als «volatile» getaggte Fragen

Volatile ist ein Qualifikationsmerkmal, mit dem ein Datenspeicherbereich (Objekt, Feld, Variable, Parameter) definiert wird, der sich "von selbst ändern kann", wodurch einige Optimierungen des Codegenerators nicht zulässig sind. In einigen, aber nicht allen Sprachen, die dieses Qualifikationsmerkmal erkennen, ist der Zugriff auf solche Daten threadsicher.

13
Führt das flüchtige Schlüsselwort C ++ einen Speicherzaun ein?
Ich verstehe, dass dies volatileden Compiler darüber informiert, dass der Wert möglicherweise geändert wird. Muss der Compiler jedoch einen Speicherzaun einführen, damit diese Funktion funktioniert, um diese Funktionalität zu erreichen? Nach meinem Verständnis kann die Reihenfolge der Operationen an flüchtigen Objekten nicht neu angeordnet werden und muss beibehalten werden. Dies …


3
Warum ist ein Point-to-Volatile-Zeiger wie „volatile int * p“ nützlich?
volatilesoll den Compiler anweisen, die Referenz nicht zu optimieren, damit bei jedem Lesen / Schreiben nicht der im Register gespeicherte Wert verwendet wird, sondern ein echter Speicherzugriff erfolgt. Ich kann verstehen, dass es für eine gewöhnliche Variable nützlich ist, verstehe aber nicht, wie volatilesich ein Zeiger auswirkt. volatile int *p …
77 c  pointers  volatile 


2
Flüchtige Struktursemantik
Reicht es aus, eine Instanz einer strukturtypisierten Variablen als flüchtig zu deklarieren (wenn auf ihre Felder im neu eingegebenen Code zugegriffen wird), oder muss man bestimmte Felder der Struktur als flüchtig deklarieren? Anders ausgedrückt, was sind die semantischen Unterschiede (falls vorhanden) zwischen: typdef struct { uint8_t bar; } foo_t; volatile …
73 c  struct  volatile 

3
Warum wird das flüchtige Qualifikationsmerkmal in std :: atomic verwendet?
Nach dem, was ich von Herb Sutter und anderen gelesen habe, würde man denken, dass die volatilegleichzeitige Programmierung völlig orthogonale Konzepte waren, zumindest was C / C ++ betrifft. In der GCC- Implementierung haben jedoch alle std::atomicMitgliedsfunktionen das volatileQualifikationsmerkmal. Gleiches gilt für Anthony Williams ' Implementierung von std::atomic. Also, was …
72 c++  c++11  atomic  volatile 

4
Warum gewährleistet flüchtig in Java 5+ nicht die Sichtbarkeit von einem anderen Thread?
Gemäß: http://www.ibm.com/developerworks/library/j-jtp03304/ Wenn unter dem neuen Speichermodell Thread A in eine flüchtige Variable V schreibt und Thread B aus V liest, ist garantiert, dass alle Variablenwerte, die zum Zeitpunkt des Schreibens von V für A sichtbar waren, jetzt für B sichtbar sind Und viele Stellen im Internet geben an, dass …


1
Warum ist volatile in C ++ 20 veraltet?
Laut cppreference sind die meisten Verwendungen des volatileSchlüsselworts in C ++ 20 veraltet. Was ist der Nachteil von volatile? Und was ist die alternative Lösung, wenn sie nicht verwendet wird volatile?
17 c++  volatile  c++20 


1
Ist diese C ++ AtomicInt-Implementierung korrekt?
Voraussetzung: Ich arbeite mit einer in ARM eingebetteten (fast Bare-Metal-) Umgebung, in der nicht einmal C ++ 11 (mit std::atomic<int>) verfügbar ist. Vermeiden Sie daher Antworten wie " Verwendenstd::atomic<int> Sie einfach Standard-C ++ ": Ich kann nicht . Ist diese ARM- Implementierung von AtomicInt korrekt? (Angenommen, die ARM-Architektur ist ARMv7-A …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.