Als «atomic» getaggte Fragen

Eine atomare Operation ist unteilbar. Dieser Begriff wird unter anderem verwendet, um Transaktionen in Datenbanken, Zugriffe auf niedriger Ebene in Multithread-Programmen und Dateisystemoperationen zu beschreiben.

2
Ist id = 1 - id atomar?
Ab Seite 291 der OCP Java SE 6 Programmer Practice Exams, Frage 25: public class Stone implements Runnable { static int id = 1; public void run() { id = 1 - id; if (id == 0) pick(); else release(); } private static synchronized void pick() { System.out.print("P "); System.out.print("Q …


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 


3
Wo ist die Sperre für ein std :: atomic?
Wenn eine Datenstruktur mehrere Elemente enthält, kann die atomare Version nicht (immer) sperrfrei sein. Mir wurde gesagt, dass dies für größere Typen gilt, da die CPU die Daten nicht atomar ändern kann, ohne eine Art Sperre zu verwenden. zum Beispiel: #include <iostream> #include <atomic> struct foo { double a; double …
71 c++  c++11  x86  atomic  stdatomic 


2
Initialisierung des Vektors der Atomik
Erwägen: void foo() { std::vector<std::atomic<int>> foo(10); ... } Sind die Inhalte von foo jetzt gültig? Oder muss ich sie explizit durchlaufen und initialisieren? Ich habe Godbolt überprüft und es scheint in Ordnung zu sein, jedoch scheint der Standard in diesem Punkt sehr verwirrt zu sein. Der Konstruktor std :: vector …
12 c++  vector  atomic 

2
Was ist mit C ++ std :: atomic auf Programmiererebene garantiert?
Ich habe mehrere Artikel, Vorträge und Fragen zum Stackoverflow angehört und gelesen std::atomicund möchte sichergehen, dass ich sie gut verstanden habe. Weil ich immer noch ein bisschen verwirrt bin mit der Sichtbarkeit von Cache-Zeilen-Schreibvorgängen aufgrund möglicher Verzögerungen bei MESI-Cache-Kohärenzprotokollen (oder abgeleiteten Protokollen), Speicherpuffern, ungültigen Warteschlangen usw. Ich habe gelesen, dass …

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.