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