Sobes.tech
Senior

Ποια οντότητα χρησιμοποιείται για τη μεταφορά δεδομένων μεταξύ των goroutines;

sobes.tech AI

Απάντηση από AI

Στη γλώσσα Go, για τη μεταφορά δεδομένων μεταξύ goroutines χρησιμοποιείται μια οντότητα που ονομάζεται κανάλι (channel). Τα κανάλια επιτρέπουν ασφαλή ανταλλαγή δεδομένων, συγχρονίζοντας την εκτέλεση των goroutines.

Παράδειγμα χρήσης καναλιού:

ch := make(chan int) // δημιουργία καναλιού για μεταφορά int

go func() {
    ch <- 42 // αποστολή τιμής στο κανάλι
}()

τιμή := <-ch // λήψη τιμής από το κανάλι
fmt.Println(τιμή) // θα εμφανίσει 42

Τα κανάλια μπορούν να είναι με buffer και μη ασφαλή, επιτρέποντας ευέλικτο έλεγχο συγχρονισμού και ανταλλαγής δεδομένων μεταξύ goroutines.