Threads A, B, C erledigen separate Arbeiten (zwischen ihnen ist keine Synchronisation erforderlich).int a = 0;
int b = 0;
int c = 0;
std::atomic_int D_dependencies{ 3 };
< /code>
thread A :
a = 1;
D_dependencies.fetch_sub(1, std::memory_order_release);
< /code>
thread B :
b = 1;
D_dependencies.fetch_sub(1, std::memory_order_release);
< /code>
thread C :
c = 1;
D_dependencies.fetch_sub(1, std::memory_order_release);
< /code>
thread D :
if(D_dependencies.load(std::memory_order_acquire) == 0)
{
assert(a + b + c == 3);
}
< /code>
My understanding is that RMW operations like fetch_sub form a "release sequence" and so the load in thread D should observe all writes if it loads 0 from the atomic variable.
Am I correct?
Threads A, B, C erledigen separate Arbeiten (zwischen ihnen ist keine Synchronisation erforderlich).int a = 0; int b = 0; int c = 0; std::atomic_int D_dependencies{ 3 }; < /code> thread A : a = 1; D_dependencies.fetch_sub(1, std::memory_order_release); < /code> thread B : b = 1; D_dependencies.fetch_sub(1, std::memory_order_release); < /code> thread C : c = 1; D_dependencies.fetch_sub(1, std::memory_order_release); < /code> thread D : if(D_dependencies.load(std::memory_order_acquire) == 0) { assert(a + b + c == 3); } < /code> My understanding is that RMW operations like fetch_sub form a "release sequence" and so the load in thread D should observe all writes if it loads 0 from the atomic variable. Am I correct?
Threads A, B, C erledigen separate Arbeiten (zwischen ihnen ist keine Synchronisation erforderlich).int a = 0;
int b = 0;
int c = 0;
std::atomic_int D_dependencies{ 3 };
Threads A, B, C erledigen separate Arbeiten (zwischen ihnen ist keine Synchronisation erforderlich).int a = 0;
int b = 0;
int c = 0;
std::atomic_int D_dependencies{ 3 };
Wenn man sich diese Implementierung von „Multiple-Producer Single-Consumer“ ansieht, die die Implementierung in der Standardbibliothek von Rust war; sein Speicherordnungsmodell ist jedoch von C++...
Ich habe ein Problem beim Laden von spezifischer Registerkarte als aktiv, wenn ich von einem verschiedenen Link stehst. Ich möchte tatsächlich einen Inhalt mit der Registerkarte Bootstrap platzieren...
Ich habe ein Problem beim Laden von spezifischer Registerkarte als aktiv, wenn ich von einem verschiedenen Link stehst. Ich möchte tatsächlich einen Inhalt mit der Registerkarte Bootstrap platzieren...