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
}