Junior — Middle
¿Cómo se realiza la lectura de datos desde múltiples hilos o canales simultáneamente?
sobes.tech AI
Respuesta de la IA
En Go, para leer simultáneamente de varios canales se utiliza el operador select. Permite esperar datos de varios canales y reaccionar al primero que esté disponible.
Ejemplo:
ch1 := make(chan int)
ch2 := make(chan int)
go func() { ch1 <- 1 }()
go func() { ch2 <- 2 }()
select {
case val := <-ch1:
fmt.Println("Recibido de ch1:", val)
case val := <-ch2:
fmt.Println("Recibido de ch2:", val)
}
De esta forma, select se bloquea hasta que uno de los canales tenga datos, y luego ejecuta el caso correspondiente. Esto permite manejar de manera eficiente múltiples flujos de datos simultáneamente.