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.