Junior — Middle
Koje vrste implementacije paralelnih zadataka poznajete?
sobes.tech АИ
Одговор од АИ
U Go, paralelni zadaci mogu se implementirati na više načina:
-
Goroutines — lagani tokovi koji se pokreću pomoću ključne reči
go. Omogućavaju paralelno izvršavanje funkcija. -
Kanal — koristi se za komunikaciju i sinhronizaciju između goroutines, omogućavajući siguran prenos podataka.
-
Poolovi radnika — grupa goroutines koje preuzimaju zadatke iz reda i obrađuju ih, pomažući u kontroli broja istovremeno aktivnih goroutines.
-
sync.WaitGroup — za čekanje završetka grupe goroutines.
Primer pokretanja goroutine i prenosa podataka putem kanala:
ch := make(chan int)
// Pokretanje goroutine
go func() {
ch <- 42 // slanje vrednosti u kanal
}()
// Primanje vrednosti iz kanala
val := <-ch
fmt.Println(val)