Почему в sync/atomic требуются выровненные указатели?

Атомарные инструкции имеют требования к адресу памяти; нарушение выравнивания может сделать операцию недопустимой. Особенно важно 64-битное значение на некоторых 32-битных платформах.

Короткий ответ

Что ответить на собеседовании

Атомарные инструкции имеют требования к адресу памяти; нарушение выравнивания может сделать операцию недопустимой. Особенно важно 64-битное значение на некоторых 32-битных платформах.

Подробный разбор

Ответ с пояснениями

Атомарные инструкции имеют требования к адресу памяти; нарушение выравнивания может сделать операцию недопустимой. Особенно важно 64-битное значение на некоторых 32-битных платформах.

При использовании низкоуровневых функций с *int64 или *uint64 учитывайте гарантии размещения на целевой архитектуре. Типизированные atomic.Int64 и atomic.Uint64 специально обеспечивают необходимое выравнивание. Не получайте произвольный адрес через unsafe ради атомарной операции. Кроме выравнивания, все конкурирующие обращения к значению должны соблюдать один атомарный протокол — смешивание с обычной записью остаётся гонкой.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее