Sobes.tech
Junior — Middle

Was macht Goroutines im Vergleich zu herkömmlichen Threads effizienter?

sobes.tech KI

Antwort von AI

Goroutines in Go sind effizienter als herkömmliche Threads aufgrund mehrerer Schlüsselfunktionen:

  • Leichtgewicht: Goroutines benötigen sehr wenig Speicher (normalerweise etwa 2 KB Stack), während System-Threads viel mehr Speicher benötigen.
  • Sprachinterner Scheduler: Go hat einen eigenen Scheduler für Goroutines, der ihre Ausführung effizient auf System-Threads verteilt, sodass Tausende von Goroutines gleichzeitig ohne erhebliche Overheads laufen können.
  • Schnelle Erstellung und Kontextwechsel: Das Erstellen und Wechseln zwischen Goroutines ist viel schneller als zwischen OS-Threads, was die Multitasking-Kosten reduziert.

Beispiel für die Erstellung einer Goroutine:

func sayHello() {
    fmt.Println("Hallo von der Goroutine")
}

func main() {
    go sayHello() // Goroutine starten
    time.Sleep(time.Second) // Warten, damit die Goroutine ausgeführt werden kann
}