Sobes.tech
Junior — Middle

Ako sa realizuje interakcia medzi gorutinami v Go?

sobes.tech AI

Odpoveď od AI

V jazyku Go je interakcia medzi gorutinami realizovaná pomocou kanálov (channels). Kanály umožňujú bezpečný prenos dát medzi gorutinami a ich synchronizáciu.

Hlavné body:

  • Kanál sa vytvorí pomocou make(chan Typ).
  • Odoslanie do kanála: ch <- hodnota.
  • Prijatie z kanála: hodnota := <-ch.
  • Kanály môžu byť s bufferom alebo bez.

Príklad:

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

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

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

Týmto spôsobom kanály zabezpečujú bezpečnú a pohodlnú komunikáciu medzi paralelnými gorutinami bez nutnosti používať mutexy alebo iné mechanizmy blokovania.