Sobes.tech
Senior

Ką galima naudoti duomenų perdavimui tarp gorutinų?

sobes.tech AI

Atsakymas iš AI

Da perduoti duomenis tarp gorutinų Go kalboje, dažniausiai naudojami kanalai (channels). Kanalai užtikrina saugų sinchronizavimą ir duomenų perdavimą, leidžiant gorutinoms keistis reikšmėmis be aiškių užraktų.

Pavyzdys, kaip naudoti kanalą:

ch := make(chan int)

// Duomenų siuntimas gorutinėje
go func() {
    ch <- 42
}()

// Duomenų gavimas
value := <-ch
fmt.Println(value) // 42

Be kanalų, galima naudoti bendrą atmintį su sinchronizacija per mutex iš paketų sync, tačiau kanalai laikomi idiomatiškesniu būdu Go kalboje.