Sobes.tech
Junior — Middle

Il mutex è uno strumento di sincronizzazione dei thread?

sobes.tech AI

Risposta dell'AI

Sì, il mutex (mutua esclusione) è uno strumento di sincronizzazione dei thread. In Go, è una struttura sync.Mutex che permette di limitare l'accesso simultaneo alle risorse condivise, prevenendo condizioni di race. Quando un thread (goroutine) acquisisce il mutex, gli altri che tentano di acquisirlo vengono bloccati fino a quando non viene rilasciato.

Esempio di utilizzo del mutex in Go:

var mu sync.Mutex
var counter int

func increment() {
    mu.Lock()           // acquisire il mutex
    defer mu.Unlock()   // rilasciare il mutex
    counter++
}