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