Senior
Dokąd trafiają goroutines podczas tworzenia — do lokalnej czy globalnej kolejki planisty Go?
sobes.tech AI
Odpowiedź od AI
Tworząc gorutynę w Go, trafia ona do lokalnej kolejki planisty (local run queue), która należy do konkretnego M (maszyny, wątku systemowego).
Środowisko uruchomieniowe Go używa modelu M:N, gdzie M to wątki systemowe, a G to gorutyny. Każde M ma własną lokalną kolejkę gorutyn do wykonania. Jeśli lokalna kolejka się przepełni lub będzie pusta, planista może równoważyć gorutyny między lokalną a globalną kolejką.
W ten sposób nowa gorutyna najpierw trafia do lokalnej kolejki planisty, co pozwala na efektywne wykorzystanie pamięci podręcznej procesora i zmniejsza koszty przełączania kontekstu.