Junior — Middle
Kā organizēt vienlaicīgu datu lasīšanu no vairākiem kanāliem?
sobes.tech AI
Atbilde no AI
Go valodā parasti tiek izmantots select operators, ja vēlaties vienlaikus lasīt no vairākiem kanāliem. Tas ļauj gaidīt vairākus kanālus vienlaikus un reaģēt uz pirmo, kas kļūst pieejams.
Piemērs:
ch1 := make(chan int)
ch2 := make(chan int)
go func() { ch1 <- 1 }()
go func() { ch2 <- 2 }()
select {
case msg1 := <-ch1:
fmt.Println("Saņemts no ch1:", msg1)
case msg2 := <-ch2:
fmt.Println("Saņemts no ch2:", msg2)
}
Tādējādi, select ļauj efektīvi apstrādāt datus no vairākiem avotiem bez bloķēšanas.