Sobes.tech
Junior — Middle

Kako se istovremeno vrši čitanje podataka iz više niti ili kanala?

sobes.tech АИ

Одговор од АИ

U jeziku Go, za istovremeno čitanje iz više kanala koristi se operator select. On omogućava da čekate podatke iz više kanala i reagujete na prvi dostupan.

Primer:

ch1 := make(chan int)
ch2 := make(chan int)

go func() { ch1 <- 1 }()
go func() { ch2 <- 2 }()

select {
case val := <-ch1:
    fmt.Println("Primljeno iz ch1:", val)
case val := <-ch2:
    fmt.Println("Primljeno iz ch2:", val)
}

Na ovaj način, select se blokira dok ne stignu podaci u jednom od kanala, a zatim izvršava odgovarajući slučaj. Ovo omogućava efikasno upravljanje više tokova podataka istovremeno.