Sobes.tech
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.