Heim > Backend-Entwicklung > C++ > Sind ganzzahlige Lese- und Schreibvorgänge in C immer atomar?

Sind ganzzahlige Lese- und Schreibvorgänge in C immer atomar?

DDD
Freigeben: 2024-11-30 09:00:18
Original
669 Leute haben es durchsucht

Are C   Integer Reads and Writes Always Atomic?

Sind C-Lese- und Schreibvorgänge eines int atomar?

Die Frage bezieht sich auf die Atomizität ganzzahliger Lese- und Schreibvorgänge in C. Die Atomarität stellt sicher, dass der Vorgang als eine einzige unteilbare Einheit abgeschlossen wird, sodass während des Prozesses keine Unterbrechungen auftreten.

Die Antwort auf diese Frage hängt von der Architektur des Systems ab. Auf Prozessoren wie IA32 sind ausgerichtete Schreibvorgänge in Ints typischerweise atomar. Abhängig vom verwendeten Caching-System sind nicht ausgerichtete Schreibvorgänge jedoch möglicherweise nicht atomar. Wenn sich der Speicher innerhalb einer einzelnen Cache-Zeile befindet, bleibt die Atomizität erhalten; Andernfalls ist dies nicht der Fall.

Außerdem kann die Breite des Busses zwischen CPU und RAM die Atomizität beeinflussen. Bei älteren Prozessoren wie dem 8086 mit einem 16-Bit-Bus waren ausgerichtete 16-Bit-Schreibvorgänge atomar, während der gleiche Vorgang beim 8088 mit einem 8-Bit-Bus nicht gewährleistet war.

Für C/ Bei C-Programmen ist es wichtig, gemeinsame Werte als flüchtig zu deklarieren. Dadurch wird verhindert, dass der Optimierer davon ausgeht, dass die Variable innerhalb eines Threads nicht geändert wird, wodurch sichergestellt wird, dass immer der tatsächliche Wert gelesen wird.

Das obige ist der detaillierte Inhalt vonSind ganzzahlige Lese- und Schreibvorgänge in C immer atomar?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage