Sobes.tech
Junior — Middle

Hogyan történik az adatok olvasása több szálból vagy csatornából egyidejűleg?

sobes.tech MI

Válasz az MI-től

Go nyelvben a select operátor segítségével lehet egyszerre több csatornáról olvasni. Ez lehetővé teszi, hogy több csatornáról várjunk adatokat, és az első elérhetőre reagáljunk.

Példa:

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

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

select {
case val := <-ch1:
    fmt.Println("Kaptam ch1-ről:", val)
case val := <-ch2:
    fmt.Println("Kaptam ch2-ről:", val)
}

Így a select blokkol, amíg valamelyik csatornán nem jelennek meg adatok, majd végrehajtja a megfelelő esetet. Ez hatékonyan kezeli több adatfolyamot egyszerre.