Middle+
Ce sunt asincronia, paralelismul și concurența în contextul Go?
sobes.tech AI
Răspuns de la AI
În contextul Go:
-
Asincronism — executarea operațiunilor fără blocarea firului principal, de obicei prin goroutines și canale. Permite lansarea de sarcini care pot fi executate independent și fără a aștepta finalizarea lor.
-
Paralelism — executarea simultană a mai multor sarcini pe diferite nuclee ale procesorului. În Go, acest lucru se realizează prin planificatorul de goroutines, care le distribuie pe firele de sistem.
-
Concurență — capacitatea unui program de a gestiona mai multe sarcini care pot fi executate simultan sau în ordine, asigurând un acces corect la resursele comune.
Exemplu de goroutine:
func worker(id int) {
fmt.Printf("Lucrător %d a început\n", id)
// muncă
}
func main() {
for i := 1; i <= 5; i++ {
go worker(i) // pornire asincronă
}
time.Sleep(time.Second) // așteaptă finalizarea
}