У меня есть хорошее концептуальное понимание 11 C++ в std::memory_order
типов (расслаблены против приобретают релиз против последовательно в соответствии ...), но я хотел бы иметь лучшее понимание того, как они, как правило, реализованный (компилятором) для целей x86 (или x86_64).Каковы барьеры памяти C++ 11 для x86-подобных систем?
В частности, сравнение деталей низкого уровня (например, важные связанные с памятью команд процессора для синхронизации состояния или кэша между процессорами) для каждого из ограничений порядка (memory_order_consume
, memory_order_acquire
, memory_order_release
и memory_order_seq_cst
).
Просьба представить как можно больше деталей нижнего уровня, предпочтительно для x86_64 или аналогичной архитектуры. Ваша помощь будет очень оценена.
Это было очень полезно. +1. – etherice