Sobes.tech
Junior — Middle

Pouvez-vous expliquer ce qu'est une exclusion mutuelle (Mutex) et comment elle fonctionne?

sobes.tech IA

Réponse de l'IA

L'exclusion mutuelle (Mutex) est un mécanisme de synchronisation qui garantit qu'à un moment donné, une seule goroutine (fil) peut accéder à une ressource ou à une section critique du code.

En Go, cela est réalisé à l'aide du type sync.Mutex. Lorsqu'une goroutine appelle Lock(), elle bloque le mutex, et d'autres goroutines tentant d'appeler Lock() attendront que le mutex soit débloqué par Unlock().

Exemple :

var mu sync.Mutex
var counter int

func increment() {
    mu.Lock()
    defer mu.Unlock()
    counter++
}

Dans cet exemple, increment augmente en toute sécurité la valeur de counter, évitant un accès simultané depuis plusieurs goroutines.