Go · Avançado · Inglês · Técnico
atomic
Pacote sync/atomic com operações indivisíveis em inteiros e ponteiros, como Add e Load, e tipos como atomic.Int64. Permite contadores compartilhados sem mutex.
Onde usar
Bom para contadores e flags simples acessados por muitas goroutines. Para proteger vários campos que precisam mudar juntos, ainda é preciso um mutex.
Em código
var n atomic.Int64
var wg sync.WaitGroup
for range 100 {
wg.Add(1)
go func() { defer wg.Done(); n.Add(1) }()
}
wg.Wait()
fmt.Println(n.Load()) // 100Exemplos
Use atomic.Int64 for the request counter.
Use atomic.Int64 para o contador de requisições.
Atomic is enough for a single counter, no mutex needed.
O atomic basta para um único contador, sem precisar de mutex.
Cuidado
Misturar acesso atômico e acesso comum à mesma variável é data race; use sempre os métodos atômicos.
Sinônimos
operação atômica
Origem
Do grego átomos, 'indivisível'.