Sobes.tech
Junior — Middle

Mi teszi a goroutine-okat hatékonyabbá a hagyományos szálakhoz képest?

sobes.tech MI

Válasz az MI-től

A goroutine-ok Go-ban hatékonyabbak a hagyományos szálaknál több kulcsfontosságú jellemzőjük miatt:

  • Könnyűsúlyú: A goroutine-ok nagyon kevés memóriát foglalnak (általában kb. 2 KB verem), míg a rendszer szálak sokkal több memóriát igényelnek.
  • Nyelvi szintű ütemező: Go saját goroutine ütemezővel rendelkezik, amely hatékonyan osztja el végrehajtásukat a rendszer szálak között, lehetővé téve ezer goroutine egyidejű futtatását jelentős költségek nélkül.
  • Gyors létrehozás és kontextusváltás: A goroutine-ok létrehozása és közötti váltás sokkal gyorsabb, mint az OS szálak között, csökkentve a multitasking költségeit.

Goroutine létrehozási példa:

func sayHello() {
    fmt.Println("Helló a goroutine-ból")
}

func main() {
    go sayHello() // goroutine indítása
    time.Sleep(time.Second) // várunk, hogy a goroutine lefusson
}