Sobes.tech
Junior — Middle

Ar operacinės sistemos planuotojas privalo priverstinai sustabdyti gorutinos vykdymą?

sobes.tech AI

Atsakymas iš AI

Ne, operacinės sistemos planuotojas neprivalo privalomai sustabdyti Go gorutinos vykdymo. Gorutinos yra lengvi srautai, valdomi Go vykdymo laiko, o ne tiesiogiai OS.

Go vykdymo laikas pats planuoja gorutinos vykdymą sisteminiuose srautuose (M:N planavimas). Gorutinos gali būti sustabdytos ir atnaujintos šiais atvejais:

  • Kai gorutina laukia įvesties/išvesties arba užstringa sinchronizacijoje.
  • Kai gorutina aiškiai perduoda valdymą (pvz., iškvietimu runtime.Gosched()).
  • Kai reikia subalansuoti apkrovą tarp srautų.

Taigi, perėjimas tarp gorutinų vyksta kooperatyviai ir pagal Go vykdymo laiko kontrolę, o ne priverstinai OS.