Sobes.tech
Junior — Middle

Kādus paralēlo uzdevumu īstenošanas veidus jūs zināt?

sobes.tech AI

Atbilde no AI

Go valodā paralēlas uzdevumus var īstenot vairākos veidos:

  • Goroutines — vieglas pavedienes, kuras uzsāk ar atslēgvārdu go. Tās ļauj funkcijas izpildīt paralēli.

  • Kanāli — tiek izmantoti komunikācijai un sinhronizācijai starp goroutines, nodrošinot drošu datu pārsūtīšanu.

  • Darbinieku baseini — goroutine grupa, kas ņem uzdevumus no rindas un apstrādā tos, palīdzot kontrolēt vienlaicīgi darbojošo goroutine skaitu.

  • sync.WaitGroup — lai gaidītu, kamēr goroutine grupa pabeigs darbu.

Piemērs, kā palaist goroutine un nosūtīt datus caur kanālu:

ch := make(chan int)
// Goroutine uzsākšana
go func() {
    ch <- 42 // vērtības nosūtīšana uz kanāla
}()
// Vērtības saņemšana no kanāla
val := <-ch
fmt.Println(val)