Sobes.tech
Junior — Middle

Kaip vyksta sąveika tarp gorutinų Go?

sobes.tech AI

Atsakymas iš AI

Go kalboje, tarpusavio sąveika tarp gorutinų vyksta per kanalus (channels). Kanalai leidžia saugiai perduoti duomenis tarp gorutinų ir juos sinchronizuoti.

Svarbiausi punktai:

  • Kanalas sukuriamas naudojant make(chan Tipo).
  • Siuntimas į kanalą: ch <- reikšmė.
  • Gavimo iš kanalo: reikšmė := <-ch.
  • Kanalai gali būti su buferiu arba be jo.

Pavyzdys:

func main() {
    ch := make(chan string)

    go func() {
        ch <- "sveiki iš goroutine"
    }()

    msg := <-ch
    fmt.Println(msg)
}

Taip kanalai užtikrina saugų ir patogų sąveiką tarp paralelinių gorutinų be būtinybės naudoti mutexus ar kitus užrakinimo mechanizmus.