Junior — Middle
Podes explicar o que é uma exclusão mútua (Mutex) e como ela funciona?
sobes.tech IA
Resposta da IA
Mutual exclusion (Mutex) é um mecanismo de sincronização que garante que, num dado momento, apenas uma goroutine (thread) pode aceder a um recurso ou secção crítica de código.
Em Go, utiliza-se o tipo sync.Mutex para isso. Quando uma goroutine chama Lock(), ela bloqueia o mutex, e outras goroutines que tentarem chamar Lock() irão esperar até que o mutex seja desbloqueado com Unlock().
Exemplo:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock()
defer mu.Unlock()
counter++
}
Neste exemplo, increment aumenta de forma segura o valor de counter, prevenindo acessos simultâneos de várias goroutines.