Junior — Middle
Ce tehnici de procesare paralelă sunt implementate în limbajul Go?
sobes.tech AI
Răspuns de la AI
În Go, sunt implementate următoarele tehnici pentru procesarea sarcinilor paralele:
-
Goroutine — fire ușoare care sunt inițiate cu cuvântul cheie
go. Permite executarea funcțiilor în paralel. -
Canale — mecanism de comunicare între goroutine-uri, care permite transmiterea datelor și sincronizarea execuției.
-
Selecții (select) — construcție pentru a aștepta mai multe operații pe canale, permițând procesarea datelor din mai multe surse.
-
Pachetul sync — conține primitive de sincronizare precum
Mutex,WaitGroup,Once, care ajută la gestionarea accesului la resursele comune și la coordonarea finalizării goroutine-urilor.
Exemplu de pornire a unei goroutine și transmitere de date printr-un canal:
package main
import (
"fmt"
)
func worker(ch chan string) {
ch <- "gata"
}
func main() {
ch := make(chan string)
go worker(ch)
msg := <-ch
fmt.Println(msg) // ieșire: gata
}