Автор рассказывает про атомарные операции в Go как более производительная альтернатива мьютексам для lock-free программирования.
В статье объясняется аппаратная основа атомарных операций - инструкции CPU уровня LOCK XADD. Автор показывает как работать с типизированным API, появившемся в Go 1.19, те самые atomic.Int64, atomic.Pointer[T] и тд, и предупреждает о ловушке atomic.Value, который фиксирует тип при первом сохранении.
На практических примерах показаны CAS-циклы для рейт лимитинга и атомарная замена конфигурации на лету без блокировок.
В целом, мьютексы стоит использовать при работе с несколькими взаимозависимыми переменными, а атомарные операции - для изолированных значений
27.04.2026
Похожее
15.05.2026
Слайсы, мапы и каналы
Продолжается цикл статей про внутреннее устройство Go. Эта статья разбирает внут...
14.05.2026
JIT для go
В статье про JIT-компилятор для Go версии 1.17+, форк проекта nelhage/gojit. ...
13.05.2026
PGKeeper
PGKeeper - это сервис на Go, который команда Figma разработала для замены устаре...
12.05.2026
CPU нагрузка
В статье рассматриваются проблемы оптимизации кода на Go, который нагружает CPU...