Senior
Wohin gehen Goroutines bei ihrer Erstellung – in die lokale oder globale Warteschlange des Go-Planers?
sobes.tech KI
Antwort von AI
Beim Erstellen einer Goroutine in Go wird sie in die lokale Warteschlange des Planers (local run queue) eingereiht, die zu einem bestimmten M gehört (Maschine, System-Thread).
Die Go-Laufzeit verwendet ein M:N-Modell, bei dem M die System-Threads und G die Goroutines sind. Jedes M hat seine eigene lokale Goroutine-Warteschlange zur Ausführung. Wenn die lokale Warteschlange überläuft oder leer ist, kann der Planer Goroutines zwischen der lokalen und der globalen Warteschlange ausbalancieren.
Auf diese Weise wird die neue Goroutine zunächst in die lokale Warteschlange des Planers eingereiht, was eine effiziente Nutzung des CPU-Caches ermöglicht und die Kosten für den Kontextwechsel reduziert.