Änderungen an verschiedenen Speicherorten können in unterschiedlicher Reihenfolge auf verschiedenen Threads oder auf verschiedenen Prozessoren erscheinen. Speichermodelle beschreiben, welche Neuordnungen möglich sind und welche Maßnahmen ergriffen werden müssen, um eine unerwünschte Neuordnung zu vermeiden.
Ich schaue mir dieses Video an Herb Sutter auf GPGPU und die neue C ++ AMP-Bibliothek. Er spricht über Speichermodelle und erwähnt Weak Memory Models und dann Strong Memory Models und ich denke, er bezieht sich auf Lesen / Schreiben usw.,...
Was ist der minimale Rahmen, der für den Code von x benötigt wird, damit dieser Code funktioniert, unter Berücksichtigung der implizierten Synchronisation beim Erstellen / Verbinden eines Threads: std::atomic ? %Code%? nichts?
%Vor%
...
Das C ++ - Speichermodell verfügt über entspannte Atomics, die bei Speicheroperationen keine Bestellgarantie bieten. Anders als das Mailbox-Beispiel in C, das ich hier gefunden habe:
Ссылка
Basierend auf dem motivierenden Beispiel in die...
In JLS, § 17.4. 5. Geschieht-vor der Bestellung , es sagt das
Ein Programm wird genau dann synchronisiert, wenn alle sequentiell konsistenten Ausführungen frei von Datenrennen sind.
Laut Diskussion in < em> Lässt ein richtig synchr...
Ich habe den folgenden Hinweis in java.lang.Class.newInstance0() in JDK 1.7 Update 7:
Hinweis: der folgende Code ist möglicherweise nicht strikt korrekt unter dem aktuellen Java-Speichermodell.
Kann jemand bitte erklären warum?
...
Was ist Ihrer Meinung nach der beste Weg, den Erwerbsteil eines Releasepaares in Java zu implementieren?
Ich versuche, einige der Aktionen in einer Anwendung von mir zu modellieren, indem ich die klassische Semantik von release / acquire verw...
Ich habe gerade Herb Sutter Vortrag gesehen: C ++ und darüber hinaus 2012: Herb Sutter - atomare & lt; & gt; Waffen, 2 von 2
Er zeigt einen Fehler bei der Implementierung von std :: shared_ptr destructor:
%Vor%
Er sagt, dass memory_orde...
Gemäß der Java-Sprachspezifikation ( Beispiel 17.4-1 ) das folgende Snippet (beginnend in A == B == 0 ) ...
%Vor%
... kann in r2 == 2 und r1 == 1 resultieren. Dies liegt daran, dass das Ergebnis der Ausführung von B = 1; nicht dav...
In der Linux-Kernel-Spinlock-Implementierung für die TILE-Gx-Architektur sieht es so aus, als würden sie beim Sperren (nur beim Entsperren) keine Speicherbarrieren ausgeben:
Ссылка
Dann verstehe ich nicht, warum Befehle nicht über der Ve...
Stimmt es, dass const_cast nur eine Möglichkeit ist, dem Compiler zu sagen: "Hör auf zu jammern, behandle das als nicht-konstanten Zeiger"? Gibt es Fälle, in denen const_cast selbst in tatsächlichen Maschinencode übersetzt wird?