Junior — Middle
Πώς πραγματοποιείται η αλληλεπίδραση μεταξύ των goroutines στη γλώσσα προγραμματισμού;
sobes.tech AI
Απάντηση από AI
Στη γλώσσα Go, η αλληλεπίδραση μεταξύ goroutines πραγματοποιείται συνήθως μέσω καναλιών (channels). Τα κανάλια επιτρέπουν ασφαλή μεταφορά δεδομένων μεταξύ goroutines, διασφαλίζοντας συγχρονισμό και ανταλλαγή μηνυμάτων.
Παράδειγμα χρήσης καναλιού:
package main
import (
"fmt"
)
func worker(ch chan string) {
ch <- "έτοιμο"
}
func main() {
ch := make(chan string)
go worker(ch)
msg := <-ch
fmt.Println(msg)
}
Εκτός από τα κανάλια, μπορούν να χρησιμοποιηθούν και άλλα μηχανισμοί συγχρονισμού, όπως το mutex από το πακέτο sync, αλλά τα κανάλια θεωρούνται ο ιδιωματικός τρόπος επικοινωνίας μεταξύ goroutines στη Go.