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