Sobes.tech
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.