Junior — Middle
Comment la lecture de données à partir de plusieurs flux ou canaux est-elle effectuée simultanément ?
sobes.tech IA
Réponse de l'IA
En Go, pour lire simultanément à partir de plusieurs canaux, on utilise l'opérateur select. Il permet d'attendre des données de plusieurs canaux et de réagir au premier disponible.
Exemple:
ch1 := make(chan int)
ch2 := make(chan int)
go func() { ch1 <- 1 }()
go func() { ch2 <- 2 }()
select {
case val := <-ch1:
fmt.Println("Reçu de ch1:", val)
case val := <-ch2:
fmt.Println("Reçu de ch2:", val)
}
Ainsi, select se bloque jusqu'à ce qu'une donnée soit disponible dans l'un des canaux, puis exécute le cas correspondant. Cela permet de gérer efficacement plusieurs flux de données en même temps.