Junior — Middle
Jak wygląda interakcja między goroutines w Go?
sobes.tech AI
Odpowiedź od AI
W Go, interakcja między gorutynami odbywa się za pomocą kanałów (channels). Kanały umożliwiają bezpieczne przesyłanie danych między gorutynami i ich synchronizację.
Główne punkty:
- Kanał tworzy się za pomocą
make(chan Typ). - Wysyłanie do kanału:
ch <- wartość. - Odbieranie z kanału:
wartość := <-ch. - Kanały mogą być z buforem lub bez.
Przykład:
func main() {
ch := make(chan string)
go func() {
ch <- "cześć z goroutine"
}()
msg := <-ch
fmt.Println(msg)
}
W ten sposób kanały zapewniają bezpieczną i wygodną interakcję między równoległymi gorutynami bez konieczności używania mutexów lub innych mechanizmów blokowania.