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
}