x86 mimarisinde, aynı bellek konumuna kaydedilen toplam sipariş sayısı vardır, örneğin bkz. this video. C++ 11 bellek modelindeki garantiler nelerdir?Farklı ipliklerdeki aynı konuma iki rahat yazma, her zaman diğer parçacıklarla aynı sırada görülebilir mi?
-- Initially --
std::atomic<int> x{0};
-- Thread 1 --
x.store(1, std::memory_order_release);
-- Thread 2 --
x.store(2, std::memory_order_release);
-- Thread 3 --
int r1 = x.load(std::memory_order_acquire);
int r2 = x.load(std::memory_order_acquire);
-- Thread 4 --
int r3 = x.load(std::memory_order_acquire);
int r4 = x.load(std::memory_order_acquire);
Daha doğrusu
, sonuç (x86 dışındaki bazı mimarisine) izin verilecek r1==1, r2==2, r3==2, r4==1
ki? memory_order
'lerin tamamını std::memory_order_relaxed
değiştirecek olsaydım ne olur?
P18'i anlamama yardımcı olabilir misiniz? 'Değer hesaplaması', atomdan yük-atomik ve“ yan etki ”ile eşanlamlı mıdır? –
@ TobiasBrüll Yük bir değer hesaplamasıdır; mağaza bir yan etkidir. –
Başka ne tür değer hesaplamaları var? Ve başka ne tür yan etkiler? –