Junior — Middle
Ako implementovať výmenu informácií medzi dvoma gorutinami v jazyku Go?
sobes.tech AI
Odpoveď od AI
V Go sa výmena informácií medzi dvoma gorutinami zvyčajne prebieha pomocou kanálov (channels). Kanály umožňujú bezpečný prenos dát medzi gorutinami a ich synchronizáciu.
Príklad výmeny cez kanál:
package main
import (
"fmt"
)
func sender(ch chan<- string) {
ch <- "Ahoj od sendera"
}
func receiver(ch <-chan string) {
msg := <-ch
fmt.Println("Prijatá správa:", msg)
}
func main() {
ch := make(chan string)
go sender(ch)
go receiver(ch)
// Čakáme, kým gorutiny neskončia
var input string
fmt.Scanln(&input)
}
Tu sender posiela reťazec do kanála a receiver ho číta. Kanály zabezpečujú bezpečnú výmenu dát bez potreby používať mutexy alebo iné synchronizačné mechanizmy.