Ich habe mit std::atomic angefangen, etwas über Speicherordnungen in C++ zu lernen. Ich versuche, den Synchronisationsmechanismus zwischen einem aufeinanderfolgenden Speichern und Laden einer atomaren Variablen aus zwei verschiedenen Threads zu verstehen. Wenn wir das Laden und Speichern von zwei verschiedenen Threads mit der Standardspeicherreihenfolge std::memory_order_seq_cst aufrufen, so
Ich habe mit std::atomic angefangen, etwas über Speicherordnungen in C++ zu lernen. Ich versuche, den Synchronisationsmechanismus zwischen einem aufeinanderfolgenden Speichern und Laden einer atomaren Variablen aus zwei verschiedenen Threads zu verstehen. Wenn wir das Laden und Speichern von zwei verschiedenen Threads mit der Standardspeicherreihenfolge std::memory_order_seq_cst aufrufen, so [code]std::atomic data(0);
Ich habe einen Speicherblock mit einer Bytegröße von 10 erstellt und wollte eine Zufallszahl erstellen und in den Speicherblock einfügen, aber es werden mir immer nur Fehlermeldungen angezeigt,...
Angenommen, ich habe ein std :: atomic und verschiedene Threads führen Operationen wie std :: string foo = map ; und map = baz . Ich speichere keine Referenzen oder Zeiger auf die Werte in der Karte....
Bevor ich zu meiner Hauptfrage komme, gehe ich davon aus, dass std::mutex::unlock() dies nicht mehr berührt, sobald der Mutex in einen Zustand versetzt wird, in dem ein anderer Thread ihn...
Atomisch die Objektdarstellung (bis c ++ 20) Wert
-Repräsentation (seit c ++, vergleicht das von c ++ 20) vergleicht. gewünscht (führt
read-modify-write-Operation ausgeführt). Andernfalls...