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