Sobes.tech
Junior — Middle

Jak je zajištěna interakce mezi gorutinami v Go?

sobes.tech AI

Odpověď od AI

V jazyce Go je komunikace mezi gorutinami realizována pomocí kanálů (channels). Kanály umožňují bezpečný přenos dat mezi gorutinami a jejich synchronizaci.

Hlavní body:

  • Kanál se vytvoří pomocí make(chan Typ).
  • Odeslání do kanálu: ch <- hodnota.
  • Přijetí z kanálu: hodnota := <-ch.
  • Kanály mohou být s bufferem nebo bez bufferu.

Příklad:

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

    go func() {
        ch <- "ahoj z gorutiny"
    }()

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

Tímto způsobem kanály zajišťují bezpečnou a pohodlnou komunikaci mezi paralelními gorutinami bez nutnosti používat mutexy nebo jiné mechanismy blokování.