Junior — Middle
Ce metode de transmitere a datelor sunt utilizate în interacțiunea dintre goroutines în Go?
sobes.tech AI
Răspuns de la AI
În Go, principalele modalități de comunicare între goroutines (fire ușor) sunt:
- Canale (channels) — metoda principală și recomandată. Canalele permit transmiterea sigură a valorilor între goroutines, asigurând sincronizarea și schimbul de date.
ch := make(chan int)
go func() {
ch <- 42 // trimiterea valorii în canal
}()
value := <-ch // primirea valorii din canal
-
Variabile comune cu sincronizare — utilizarea datelor comune cu mutex-uri (
sync.Mutex) sau alte primitive de sincronizare pentru a preveni condițiile de cursă. -
Pachetul sync — oferă diverse instrumente pentru coordonarea goroutines, precum
WaitGroup,Cond.
Totuși, în Go, se preferă evitarea accesului comun la memorie și transmiterea datelor prin canale, ceea ce simplifică dezvoltarea și crește siguranța.