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 msg1 := <-ch1:
    fmt.Println("Ստացվել է ch1-ից՝", msg1)
case msg2 := <-ch2:
    fmt.Println("Ստացվել է ch2-ից՝", msg2)
}

Այսպիսով, select թույլ է տալիս արդյունավետ կերպով մշակել տվյալները մի քանի աղբյուրներից՝ առանց բլոկավորման։