Junior — Middle
Cum se realizează citirea datelor din mai multe fire sau canale în același timp?
sobes.tech AI
Răspuns de la AI
În Go, pentru citirea simultană din mai multe canale, se folosește operatorul select. Acesta permite așteptarea datelor din mai multe canale și reacția la primul disponibil.
Exemplu:
ch1 := make(chan int)
ch2 := make(chan int)
go func() { ch1 <- 1 }()
go func() { ch2 <- 2 }()
select {
case val := <-ch1:
fmt.Println("Primite din ch1:", val)
case val := <-ch2:
fmt.Println("Primite din ch2:", val)
}
Astfel, select se blochează până când apar date într-unul dintre canale, apoi execută cazul corespunzător. Acest lucru permite gestionarea eficientă a mai multor fluxuri de date simultan.