Sobes.tech
Middle

Comment fonctionnent les opérations atomiques?

sobes.tech IA

Réponse de l'IA

Les opérations atomiques sont des opérations qui s'exécutent entièrement ou pas du tout, sans états intermédiaires visibles par d'autres threads.

Dans Go, le paquet sync/atomic fournit des fonctions pour effectuer de telles opérations sur des variables (par exemple, AddInt32, CompareAndSwapInt64). Cela permet de modifier en toute sécurité des valeurs dans un environnement concurrent sans utiliser de mutex.

Exemple :

import (
    "fmt"
    "sync/atomic"
)

func main() {
    var counter int32 = 0
    atomic.AddInt32(&counter, 1) // augmentation atomique de 1
    fmt.Println(counter) // 1
}

L'atomicité garantit que l'opération ne sera pas interrompue et que d'autres goroutines verront soit l'ancienne, soit la nouvelle valeur, mais pas une intermédiaire.