Sobes.tech
Junior — Middle

Hogyan valósul meg a goroutine-ok közötti interakció a programozási nyelvben?

sobes.tech MI

Válasz az MI-től

A Go nyelvben a goroutine-ok közötti interakció általában csatornákon (channels) keresztül történik. A csatornák biztonságosan továbbítják az adatokat a goroutine-ok között, biztosítva a szinkronizációt és az üzenetváltást.

Példa egy csatorna használatára:

package main

import (
    "fmt"
)

func worker(ch chan string) {
    ch <- "kész"
}

func main() {
    ch := make(chan string)
    go worker(ch)
    msg := <-ch
    fmt.Println(msg)
}

A csatornák mellett más szinkronizációs mechanizmusokat is lehet használni, például a sync csomag mutexét, de a csatornákat tartják az idiomatikus módnak a kommunikációra a goroutine-ok között Go-ban.