Sobes.tech
Junior — Middle

Kuidas korraldada andmete samaaegset lugemist mitmest kanalist?

sobes.tech AI

Vastus AI-lt

Go keeles kasutatakse tavaliselt select operaatorit samaaegseks lugemiseks mitmest kanalist. See võimaldab oodata mitut kanalit korraga ja reageerida esimesele, mis muutub kättesaadavaks.

Näide:

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

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

select {
case msg1 := <-ch1:
    fmt.Println("Saadud ch1-st:", msg1)
case msg2 := <-ch2:
    fmt.Println("Saadud ch2-st:", msg2)
}

Sellisel viisil võimaldab select tõhusalt töödelda andmeid mitmest allikast ilma blokeerimiseta.