Sobes.tech
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.