Sobes.tech
Junior — Middle

Ինչպե՞ս է կատարվում տվյալների ընթերցումը միաժամանակ մի քանի հոսքերից կամ ալիքներից։

sobes.tech AI

Պատասխան AI-ից

Go լեզվում, միաժամանակ մի քանի ալիքներից ընթերցելու համար օգտագործվում է select օպերատորը։ Այն թույլ է տալիս սպասել մի քանի ալիքներից տվյալների և արձագանքել առաջին հասանելիին։

Օրինակ՝

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

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

select {
case val := <-ch1:
    fmt.Println("Ստացվել է ch1-ից՝", val)
case val := <-ch2:
    fmt.Println("Ստացվել է ch2-ից՝", val)
}

Այսպիսով, select բլոկավորվում է, մինչև որ տվյալներ հայտնվեն որևէ ալիքից, և ապա կատարում է համապատասխան դեպքը։ Սա թույլ է տալիս արդյունավետ կառավարել միաժամանակ մի քանի տվյալների հոսքեր։