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