Sobes.tech
Junior — Middle

Hogyan valósul meg a goroutine-ok közötti interakció Go-ban?

sobes.tech MI

Válasz az MI-től

Go nyelvben a goroutine-ok közötti kommunikáció csatornák (channels) segítségével történik. A csatornák lehetővé teszik az adatok biztonságos átadását a goroutine-ok között és azok szinkronizálását.

Főbb pontok:

  • A csatorna make(chan Típus) segítségével jön létre.
  • A csatornába küldés: ch <- érték.
  • A csatornából való fogadás: érték := <-ch.
  • A csatornák lehetnek pufferelt vagy puffer nélküli típusúak.

Példa:

func main() {
    ch := make(chan string)

    go func() {
        ch <- "üdv a goroutine-ból"
    }()

    msg := <-ch
    fmt.Println(msg)
}

Így a csatornák biztonságos és kényelmes módját kínálják a párhuzamos goroutine-ok közötti kommunikációnak anélkül, hogy mutexeket vagy más zárolási mechanizmusokat kellene használni.