ExpertiDict

Go · Avançado · Inglês · Técnico

atomic

/əˈtɑm.ɪk/substantivo

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()) // 100

Exemplos

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'.

Veja também

Todos os termos de Go