memory-model

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

Gleichzeitigkeits- und Speichermodelle

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.,...
27.08.2011, 13:42
1
Antwort

Implizite Synchronisation beim Erstellen / Verknüpfen von Threads

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%    ...
16.04.2015, 19:34
1
Antwort

Was sind einige Anwendungsfälle für memory_order_relaxed

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...
06.05.2014, 06:27
1
Antwort

Beispiel für ein korrekt synchronisiertes Programm mit Datenrennen im Java-Speichermodell

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...
19.08.2012, 03:47
2
Antworten

Warum ist java.lang.Class.newInstance0 () nicht strikt unter dem Java-Speichermodell zu korrigieren?

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?  ...
01.11.2012, 12:40
2
Antworten

Implementierung eines Acquires für eine Version von Unsafe.putOrdered * ()?

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...
08.05.2016, 22:14
4
Antworten

Verwirrung über Implementierungsfehler in shared_ptr destructor

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...
14.02.2013, 17:54
1
Antwort

Ist diese Befehlsumordnung von der JLS erlaubt oder nicht?

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...
03.01.2013, 20:42
1
Antwort

Speicherbarrieren und Linux Kernel Spinlock auf TILE-Gx

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...
12.12.2013, 17:14
4
Antworten

Führt const_cast jemals zu tatsächlicher Code-Emission?

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?     
17.04.2009, 07:04