Suchergebnisse für Anfrage "memory-barriers"

12 die antwort

Compiler um Mutex-Grenzen neu anordnen?

Angenommen, ich habe meine eigenen Nicht-Inline-Funktionen LockMutex und UnlockMutex, die einen geeigneten Mutex (z. B. boost) verwenden. Woher weiß der Compiler, dass er andere Vorgänge in Bezug auf Aufrufe von LockMutex und UnlockMutex nicht ...

4 die antwort

Memory Barrier von lock statement

Ich habe kürzlich über Speicherbarrieren und das Problem der Neuordnung gelesen und jetzt habe ich einige Verwirrung darüber. Betrachten Sie das folgende Szenario: private object _object1 = null; private object _object2 = null; private ...

6 die antwort

C ++ 11 Atomspeicherreihenfolge mit nichtatomaren Variablen

Ich bin mir nicht sicher, wie sich die Speicherreihenfolge von atomaren Variablen in c ++ 11 auf Operationen in anderen Speicher auswirkt. Nehmen wir an, ich habe einen Thread, der regelmäßig die Schreibfunktion aufruft, um einen Wert zu ...

TOP-Veröffentlichungen

10 die antwort

Warum ist das standardmäßige C # -Ereignisaufrufmuster threadsicher, ohne dass eine Speichersperre oder eine Cache-Ungültigkeit vorliegt? Was ist mit ähnlichem Code?

In C # ist dies der Standardcode zum thread-sicheren Aufrufen eines Ereignisses: var handler = SomethingHappened; if(handler != null) handler(this, e);Wo, möglicherweise in einem anderen Thread, verwendet die vom Compiler ...

6 die antwort

Ist in einer Besetzt-Warteschleife eine Speicherbarriere oder eine atomare Operation erforderlich?

Folgendes berücksichtigenspin_lock() Implementierung, ursprünglich vondiese Antwort [https://stackoverflow.com/a/32658335/3169754]: void spin_lock(volatile bool* lock) { for (;;) { // inserts an acquire memory barrier and a compiler barrier if ...

2 die antwort

Macht das Intel-Speichermodell SFENCE und LFENCE überflüssig?

Das Intel Memory Model garantiert: Stores werden bei anderen Stores nicht nachbestelltLoads werden nicht mit anderen Loads ...

4 die antwort

Warum brauche ich eine Speicherbarriere?

C # 4 in Kürze (übrigens sehr zu empfehlen) verwendet den folgenden Code, um das Konzept von MemoryBarrier zu demonstrieren (vorausgesetzt, A und B wurden auf verschiedenen Threads ausgeführt): class Foo{ int _answer; bool complete; void A(){ ...

4 die antwort

GCC reordering up across load mit `memory_order_seq_cst`. Ist das erlaubt?

Verwenden einer vereinfachten Version eines grundlegenden seqlock [https://en.wikipedia.org/wiki/Seqlock], gcc ordnet eine nichtatomare Last über ein atomares @ naload(memory_order_seq_cst) beim Kompilieren des Codes mit-O3. Diese Neuordnung wird ...

2 die antwort

inn für Gedächtnisbarrier

ch versuche, Speicherbarrieren auf einem Niveau zu verstehen, das für Java-Programmierer ohne Sperren nützlich ist. Dieses Niveau liegt meiner Meinung nach irgendwo zwischen dem Erlernen von Informationen zu flüchtigen Bestandteilen und dem ...

6 die antwort

Garantieren Speichersperren ein frisches Lesen in C #?

Wenn wir den folgenden Code in C # haben: int a = 0; int b = 0; void A() // runs in thread A { a = 1; Thread.MemoryBarrier(); Console.WriteLine(b); } void B() // runs in thread B { b = 1; Thread.MemoryBarrier(); Console.WriteLine(a); ...