Junior — Middle
Ce tipuri de implementare a sarcinilor paralele cunoști?
sobes.tech AI
Răspuns de la AI
În Go, sarcinile paralele pot fi implementate în mai multe moduri:
-
Goroutines — fire ușoare inițiate cu cuvântul cheie
go. Permite executarea funcțiilor în paralel. -
Canale — utilizate pentru comunicare și sincronizare între goroutines, permițând transferul sigur de date.
-
Pool-uri de lucrători — un grup de goroutines care preiau sarcini dintr-o coadă și le procesează, ajutând la controlul numărului de goroutines care rulează simultan.
-
sync.WaitGroup — pentru a aștepta finalizarea unui grup de goroutines.
Exemplu de pornire a unei goroutine și transmitere de date prin canal:
ch := make(chan int)
// Pornire goroutine
go func() {
ch <- 42 // trimiterea valorii în canal
}()
// primirea valorii din canal
val := <-ch
fmt.Println(val)