Атомное упорядочение памяти x86 C++11

В одном из документов для атомарных переменных в C++0x при описании порядка памяти упоминается:

Release-Acquire Ordering

On strongly-ordered systems (x86, SPARC, IBM mainframe), release-acquire ordering is automatic. No additional CPU instructions are issued for this synchronization mode, only certain compiler optimizations are affected...

Во-первых, правда ли, что x86 следует строгому порядку памяти? Кажется очень неэффективным всегда навязывать это. Значит, у каждой записи и чтения есть забор?

Кроме того, если у меня есть выровненный int в системе x86, служат ли вообще атомарные переменные какой-либо цели?

5
задан user7116 6 August 2012 в 21:21
поделиться