Junior — Middle
Qual é a finalidade do tipo de sincronização RWMutex na linguagem de programação?
sobes.tech IA
Resposta da IA
Na linguagem Go, o tipo RWMutex (Mutex de Leitura-Gravação) é utilizado para sincronizar o acesso a recursos partilhados, permitindo que várias goroutines leiam dados simultaneamente, mas bloqueando a escrita enquanto há leitura em curso, e vice-versa.
O principal objetivo do RWMutex é melhorar o desempenho em cenários onde as operações de leitura são muito mais frequentes do que as de escrita. Ele fornece dois tipos de bloqueios:
RLock()— bloqueio para leitura, permite que múltiplos leitores acessem simultaneamente.Lock()— bloqueio para escrita, acesso exclusivo.
Exemplo de uso:
var mu sync.RWMutex
var data int
func readData() int {
mu.RLock()
defer mu.RUnlock()
return data
}
func writeData(val int) {
mu.Lock()
defer mu.Unlock()
data = val
}
Assim, o RWMutex ajuda a gerir de forma eficiente o acesso concorrente, minimizando bloqueios em cenários de leituras frequentes.