Junior — Middle
Que tarefas o pacote sync resolve na linguagem de programação Go?
sobes.tech IA
Resposta da IA
O pacote sync na linguagem Go fornece primitivas de sincronização para gerir o acesso concorrente a recursos e coordenar goroutines.
As principais tarefas que o pacote sync resolve:
- Mutex (
Mutex) — para proteger secções críticas e evitar acessos simultâneos a dados partilhados. - RWMutex — mutex com separação entre leitura e escrita, permitindo a várias goroutines lerem dados simultaneamente, mas bloqueando a escrita.
- WaitGroup — para aguardar a conclusão de um grupo de goroutines.
- Once — para realizar uma inicialização apenas uma vez.
Exemplo de uso de Mutex:
var mu sync.Mutex
var counter int
func increment() {
mu.Lock()
defer mu.Unlock()
counter++
}
Assim, o pacote sync ajuda a trabalhar de forma segura com a concorrência e a evitar condições de corrida.