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í.