Sobes.tech
Junior — Middle

Jak zorganizować jednoczesne odczytywanie danych z kilku kanałów?

sobes.tech AI

Odpowiedź od AI

Aby jednocześnie odczytywać z wielu kanałów w Go, zazwyczaj używa się operatora select. Pozwala on oczekiwać na wiele kanałów jednocześnie i reagować na pierwszy dostępny.

Przykład:

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

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

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

W ten sposób select pozwala efektywnie obsługiwać dane z wielu źródeł bez blokowania.