Go offre deux approches pour la sécurité concurrente : les channels (« partager la mémoire en communiquant ») et le package sync (mutex/verrous pour protéger directement la mémoire partagée). Malgré la philosophie Go axée sur les channels, les primitives sync sont souvent le choix plus simple et plus efficace pour protéger l'état partagé.
sync.Mutex — protéger l'état partagé avec un verrou
Counter {
mu sync.Mutex
count
}
Increment() {
c.mu.Lock()
c.mu.Unlock()
c.count++
}
