Post Thumbnail

Автор рассказывает про атомарные операции в Go как более производительная альтернатива мьютексам для lock-free программирования.

В статье объясняется аппаратная основа атомарных операций - инструкции CPU уровня LOCK XADD. Автор показывает как работать с типизированным API, появившемся в Go 1.19, те самые atomic.Int64, atomic.Pointer[T] и тд, и предупреждает о ловушке atomic.Value, который фиксирует тип при первом сохранении.

На практических примерах показаны CAS-циклы для рейт лимитинга и атомарная замена конфигурации на лету без блокировок.

В целом, мьютексы стоит использовать при работе с несколькими взаимозависимыми переменными, а атомарные операции - для изолированных значений

Похожее

Post Thumbnail

HTMX с Go

Автор детально описывает свои паттерны интеграции HTMX с Go. Почитайте, там мног...