Junior — Middle
Povinně pozastavuje plánovač operačního systému vykonávání gorutiny?
sobes.tech AI
Odpověď od AI
Ne, plánovač operačního systému nutně nepřerušuje provádění gorutiny v Go. Gorutiny jsou lehké vlákna řízená běhovým prostředím Go, nikoli přímo operačním systémem.
Běhové prostředí Go samo plánuje provádění gorutin na systémových vláknech (plánování M:N). Gorutiny mohou být pozastaveny a znovu spuštěny v následujících případech:
- Když gorutina čeká na vstup/výstup nebo se blokuje při synchronizaci.
- Když gorutina výslovně předává řízení (například voláním
runtime.Gosched()). - Pokud je potřeba vyvážit zátěž mezi vlákny.
Tudíž přepínání mezi gorutinami probíhá kooperativně a pod kontrolou běhového prostředí Go, nikoli nuceně operačním systémem.