Middle
Qu'est-ce qu'un Mutex?
sobes.tech IA
Réponse de l'IA
Mutex (exclusion mutuelle) est un mécanisme de synchronisation en Go, utilisé pour empêcher l'accès simultané de plusieurs goroutines à des ressources communes, comme des variables ou des structures de données. Mutex garantit qu'à tout moment, une seule goroutine peut détenir le verrou et exécuter la section critique du code.
Exemple d'utilisation de sync.Mutex en Go :
import (
"fmt"
"sync"
)
func main() {
var mu sync.Mutex
compteur := 0
increment := func() {
mu.Lock() // acquisition du verrou
defer mu.Unlock() // libération du verrou
compteur++
}
var wg sync.WaitGroup
for i := 0; i < 1000; i++ {
wg.Add(1)
go func() {
defer wg.Done()
increment()
}()
}
wg.Wait()
fmt.Println("Compteur:", compteur)
}
Sans Mutex, le résultat pourrait être incorrect en raison de conditions de course.