Sklepy są operacjami zwolnienia, a obciążenia są operacjami nabycia dla obu. Wiem, że memory_order_seq_cst
ma nakładać dodatkową całkowitą kolejność dla wszystkich operacji, ale nie udało mi się zbudować przykładu, w którym nie jest tak, jeśli wszystkie memory_order_seq_cst
zostaną zastąpione przez memory_order_acq_rel
.Czym różnią się parametry memory_order_seq_cst i memory_order_acq_rel?
Czy coś mi umknęło, czy różnica jest tylko efektem dokumentacji, tj. Należy użyć memory_order_seq_cst
, jeśli ktoś nie chce grać z bardziej zrelaksowanym modelem i używać memory_order_acq_rel
, gdy ogranicza zrelaksowany model?
Nie rozumiem, dlaczego 'x = true, y = true; c(); d()' nie jest możliwe? To powinno spowodować, że będzie to 0. Również nie wiem, dlaczego otrzymuję 2 dużo jako wyniki. –
@ acidzombie24, nawet w tym przypadku 'z' będzie 2. – MSN
Zepsułem, źle odczytałem kod. To ma teraz sens. –