Junior — Middle
Zabudne plánovač operačného systému nútene pozastaviť vykonávanie gorutiny?
sobes.tech AI
Odpoveď od AI
Nie, plánovač operačného systému ne pozastavuje povinne vykonávanie gorutín v Go. Gorutiny sú ľahké vlákna spravované runtime-om Go, nie priamo OS.
Runtime Go sám plánuje vykonávanie gorutín na systémových vláknach (plánovanie M:N). Gorutiny môžu byť pozastavené a obnovené v nasledujúcich prípadoch:
- Keď gorutina čaká na vstup/výstup alebo sa blokuje pri synchronizácii.
- Keď gorutina výslovne odovzdáva kontrolu (napríklad volaním
runtime.Gosched()). - Keď je potrebné vyvážiť záťaž medzi vláknami.
Preto prechody medzi gorutinami prebiehajú kooperatívne a pod kontrolou runtime-u Go, nie nútene systémom.