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