Sobes.tech
Junior — Middle

Como é feita a leitura de dados de múltiplos fluxos ou canais ao mesmo tempo?

sobes.tech IA

Resposta da IA

Em Go, para ler simultaneamente de vários canais, usa-se o operador select. Ele permite esperar por dados de vários canais e reagir ao primeiro disponível.

Exemplo:

ch1 := make(chan int)
ch2 := make(chan int)

go func() { ch1 <- 1 }()
go func() { ch2 <- 2 }()

select {
case val := <-ch1:
    fmt.Println("Recebido de ch1:", val)
case val := <-ch2:
    fmt.Println("Recebido de ch2:", val)
}

Assim, select bloqueia até que haja dados em um dos canais, e então executa o caso correspondente. Isso permite processar eficientemente múltiplos fluxos de dados ao mesmo tempo.