Sobes.tech
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.