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 επιτρέπει την αποτελεσματική επεξεργασία δεδομένων από πολλαπλές πηγές χωρίς μπλοκάρισμα.