Junior — Middle
V ktorých situáciách dochádza k automatickému prepínaniu vykonávania pri používaní gorútin?
sobes.tech AI
Odpoveď od AI
V Go sa automatické prepínanie vykonávania medzi gorutinami v nasledujúcich situáciách:
- Keď gorutina zavolá funkciu, ktorá blokuje vykonávanie, napríklad čítanie z kanála, zápis do kanála alebo systémové volanie, ktoré blokuje vlákno.
- Pri volaní funkcie runtime.Gosched(), ktorá explicitne odovzdáva kontrolu plánovaču na prechod na inú gorutinu.
- Keď gorutina skončí, plánovač prepne na inú pripravenú gorutinu.
Runtime Go obsahuje plánovač, ktorý rozdeľuje vykonávanie gorutín na dostupné systémové vlákna (M). Prechod sa vykonáva automaticky, aby sa efektívne využil CPU a nezablokovalo celé spustenie programu pri čakaní na operácie vstupu/výstupu alebo synchronizácie.