Чем отличается atomic.Value от atomic.Pointer?

Senior
69 просмотров
AFK Offer AI

atomic.Value хранит interface{} — любой тип, но с boxing (аллокация). atomic.Pointer[T] (Go 1.19+) — типизированный, без boxing, работает напрямую с указателем. Pointer быстрее и type-safe. Value удобен когда тип может меняться. Оба гарантируют атомарный Load/Store, но не CAS для Value (есть CompareAndSwap для Pointer).

Следующий вопрос

gorilla/websocket vs nhooyr/websocket — что выбрать?