Junior — Middle
Pode-se usar canais como mecanismo para coordenar a execução de tarefas entre goroutines?
sobes.tech IA
Resposta da IA
Sim, em Go, os canais (channels) são o principal mecanismo para coordenar e sincronizar a execução de tarefas entre goroutines. Eles permitem transferir dados de forma segura entre goroutines, garantindo que o remetente ou o receptor fiquem bloqueados até que a outra parte esteja pronta.
Exemplo de uso de um canal para coordenação:
ch := make(chan int)
func() {
// Execução da tarefa
ch <- 1 // Envio de sinal de conclusão
}()
// Aguardar sinal da goroutine
<-ch
Assim, os canais ajudam a evitar condições de corrida e simplificam a sincronização entre goroutines.