Junior — Middle
Je v Go povinné, aby sa medzi gorutinami automaticky menil kontext vykonávania?
sobes.tech AI
Odpoveď od AI
V Go automatická zmena kontextu medzi gorutinami nastáva, ale nie v klasickom zmysle preemptívneho multitaskingu, ako v operačných systémoch.
Gorutiny sú ľahké vlákna spravované runtime-om Go. Plánovač Go strieda vykonávanie medzi gorutinami, aby efektívne využíval systémové vlákna.
Vlastnosti:
- Plánovač Go používa kooperatívny multitasking: gorutina musí odovzdať kontrolu, napríklad pri volaní blokujúcich operácií alebo funkcií, ktoré explicitne yieldujú.
- Od verzie Go 1.14 bolo pridané obmedzené podporovanie preemption, ktoré umožňuje plánovaču prerušovať gorutinu, ak dlho neodovzdá kontrolu.
Týmto spôsobom dochádza k zmene kontextu medzi gorutinami automaticky a je pre vývojára transparentná, avšak s určitými odlišnosťami od klasických operačných systémov.