Junior — Middle
Que tipos de mecanismos de bloqueio mútuo de exclusão você usa em seus projetos?
sobes.tech IA
Resposta da IA
Em Go, para implementar exclusão mútua, geralmente uso o tipo padrão sync.Mutex. É simples de usar e bloqueia eficazmente as secções críticas do código.
Também uso sync.RWMutex quando preciso distinguir entre acesso de leitura e escrita: vários goroutines podem ler dados simultaneamente, mas a escrita bloqueia todos.
Em alguns casos, uso canais (channels) para sincronização, o que permite evitar bloqueios explícitos e tornar o código mais declarativo.
Exemplo com sync.Mutex:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock()
defer mu.Unlock()
counter++
}
Assim, a escolha do mecanismo depende da tarefa específica e dos requisitos de desempenho.