Sobes.tech
Middle

Como funcionam as operações atômicas?

sobes.tech IA

Resposta da IA

Operações atômicas são operações que são executadas completamente ou não são executadas de todo, sem estados intermediários visíveis por outros threads.

No Go, o pacote sync/atomic fornece funções para realizar essas operações em variáveis (por exemplo, AddInt32, CompareAndSwapInt64). Isso permite alterar valores de forma segura em ambientes concorrentes sem usar mutexes.

Exemplo:

import (
    "fmt"
    "sync/atomic"
)

func main() {
    var counter int32 = 0
    atomic.AddInt32(&counter, 1) // incremento atômico de 1
    fmt.Println(counter) // 1
}

A atomicidade garante que a operação não será interrompida e que outros goroutines verão ou o valor antigo ou o novo, mas não um intermediário.