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