Junior — Middle
Como é feita a coordenação do trabalho de várias goroutines em Go?
sobes.tech IA
Resposta da IA
Em Go, a coordenação do trabalho de várias goroutines é geralmente feita usando canais (channels) e o pacote sync.
- Canais permitem que as goroutines troquem dados e sincronizem a execução, bloqueando o remetente ou o receptor até que estejam prontos.
- sync.WaitGroup é usado para esperar que um grupo de goroutines termine.
- Mutex e outras primitivas do sync garantem acesso seguro a recursos compartilhados.
Exemplo de uso de um canal para sincronização:
ch := make(chan int)
func() {
// Executar trabalho
ch <- 1 // sinal de conclusão
}()
<-ch // esperar pelo sinal
Dessa forma, canais e primitivas de sincronização permitem coordenar tarefas paralelas de forma eficiente.