Sobes.tech
Middle+

Mi az aszinkronitás, párhuzamosság és konkurencia a Go kontextusában?

sobes.tech MI

Válasz az MI-től

Go kontextusában:

  • Aszinkronitás — műveletek végrehajtása anélkül, hogy blokkolná a fő szálat, általában goroutine-okon és csatornákon keresztül. Lehetővé teszi olyan feladatok indítását, amelyek függetlenül futtathatók, és nem kell várniuk a befejezésüket.

  • Párhuzamosság — több feladat egyidejű végrehajtása különböző processzormagokon. Go-ban ezt a goroutine ütemezője éri el, amelyeket rendszer szálakra oszt szét.

  • Versenyhelyzet — egy program képessége több feladat kezelésére, amelyek egyidejűleg vagy sorban futtathatók, biztosítva a közös erőforrások helyes hozzáférését.

Goroutine példa:

func worker(id int) {
    fmt.Printf("Munkás %d elindult\n", id)
    // munka
}

func main() {
    for i := 1; i <= 5; i++ {
        go worker(i) // aszinkron indítás
    }
    time.Sleep(time.Second) // várakozás a befejezésre
}