Junior — Middle
Kaip vykdomas duomenų skaitymas iš kelių srautų ar kanalų vienu metu?
sobes.tech AI
Atsakymas iš AI
Go kalboje, norint vienu metu skaityti iš kelių kanalų, naudojamas select operatorius. Jis leidžia laukti duomenų iš kelių kanalų ir reaguoti į pirmą pasiekiamą.
Pavyzdys:
ch1 := make(chan int)
ch2 := make(chan int)
go func() { ch1 <- 1 }()
go func() { ch2 <- 2 }()
select {
case val := <-ch1:
fmt.Println("Gauta iš ch1:", val)
case val := <-ch2:
fmt.Println("Gauta iš ch2:", val)
}
Taip, select blokuojasi, kol vienas iš kanalų turi duomenų, ir tada vykdo atitinkamą atvejį. Tai leidžia efektyviai valdyti kelis duomenų srautus vienu metu.