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