Sobes.tech
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.