Aller au contenu

Compteurs atomiques

Le package sync/atomic fournit des opérations atomiques bas niveau pour les entiers et les pointeurs. Utilisez‑les pour incrémenter des compteurs sans verrous.

Incrémenter un compteur depuis plusieurs goroutines avec atomic.AddUint64.

package main
import (
"fmt"
"sync"
"sync/atomic"
)
func main() {
var compteur uint64
var wg sync.WaitGroup
for i := 0; i < 1000; i++ {
wg.Add(1)
go func() {
atomic.AddUint64(&compteur, 1)
wg.Done()
}()
}
wg.Wait()
fmt.Println("compteur :", compteur)
}
Fenêtre de terminal
compteur : 1000