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.