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
}