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.