Для простого чтения речь идет в основном о выравнивании.Самый простой способ обеспечить атомарное чтение - это всегда использовать «естественное» выравнивание, т. Е. Выравнивание не меньше размера элемента (например, 32-разрядный элемент является 32-разрядным выравниванием).
Выровненные чтения не обязательно являются атомарными.В качестве крайнего примера рассмотрим считывание 32-разрядного значения по нечетному адресу, где первый байт находится в одной строке кэша, а остальные три байта находятся в другой строке кэша.В таком случае атомарное чтение по существу невозможно.
Поскольку (по крайней мере, большинство) процессоров используют шину памяти шириной 64 бита, самый большой элемент, который можно надеяться на атомарное чтение, - 64 бита.*