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