Senior
Čo sa dá použiť na prenos dát medzi gorutinami?
sobes.tech AI
Odpoveď od AI
Pre prenosu podatkov med gorutinami v Go običajno uporabljamo kanale (channels). Kanali zagotavljajo varno sinhronizacijo in prenos podatkov, kar omogoča gorutinam izmenjavo vrednosti brez eksplicitnih blokad.
Primer uporabe kanala:
ch := make(chan int)
// Pošiljanje podatkov v gorutini
go func() {
ch <- 42
}()
// Prejem podatkov
value := <-ch
fmt.Println(value) // 42
Poleg kanalov je mogoče uporabiti skupno pomnilnik s sinhronizacijo preko mutexa iz paketa sync, vendar se kanali štejejo za bolj idiomatičen način v Go.