Sobes.tech
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.