Go · Essencial · Inglês · Técnico
mutex
Trava de exclusão mútua do pacote sync. Lock e Unlock garantem que só uma goroutine por vez acesse a seção crítica que protege os dados compartilhados.
Onde usar
Usado para proteger um mapa ou contador acessado por várias goroutines. O padrão é Lock seguido de defer Unlock, para liberar a trava mesmo em caso de panic.
Em código
var mu sync.Mutex
var n int
func inc() {
mu.Lock()
defer mu.Unlock()
n++
}Exemplos
Protect the map with a mutex.
Proteja o map com um mutex.
Always unlock the mutex with defer.
Sempre destrave o mutex com defer.
Cuidado
Não copie um struct que contém Mutex depois de usado; o go vet avisa, e a cópia carrega o estado da trava.
Sinônimos
trava de exclusão mútua
Origem
Abreviação de mutual exclusion, 'exclusão mútua'.