Junior — Middle
Kā notiek datu lasīšana no vairākiem plūsmām vai kanāliem vienlaikus?
sobes.tech AI
Atbilde no AI
Go valodā, lai vienlaikus lasītu no vairākiem kanāliem, tiek izmantots operators select. Tas ļauj gaidīt datus no vairākiem kanāliem un reaģēt uz pirmo pieejamo.
Piemērs:
ch1 := make(chan int)
ch2 := make(chan int)
go func() { ch1 <- 1 }()
go func() { ch2 <- 2 }()
select {
case val := <-ch1:
fmt.Println("Saņemts no ch1:", val)
case val := <-ch2:
fmt.Println("Saņemts no ch2:", val)
}
Tādējādi, select bloķējas, kamēr kādā no kanāliem nav parādījušies dati, un pēc tam izpilda atbilstošo gadījumu. Tas ļauj efektīvi pārvaldīt vairākus datu plūsmas vienlaikus.