Suchergebnisse für Anfrage "memory-barriers"
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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(){ ...
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 ...
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 ...
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); ...