Junior — Middle
Como organizar a leitura simultânea de dados de vários canais?
sobes.tech IA
Resposta da IA
Para leitura simultânea de vários canais em Go, normalmente usa-se o operador select. Ele permite esperar por vários canais ao mesmo tempo e reagir ao primeiro que ficar disponível.
Exemplo:
ch1 := make(chan int)
ch2 := make(chan int)
go func() { ch1 <- 1 }()
go func() { ch2 <- 2 }()
select {
case msg1 := <-ch1:
fmt.Println("Recebido de ch1:", msg1)
case msg2 := <-ch2:
fmt.Println("Recebido de ch2:", msg2)
}
Assim, select permite processar dados de múltiplas fontes de forma eficiente sem bloqueio.