Sobes.tech
Junior — Middle

Je v Go povinné, aby docházelo k automatické změně kontextu běhu mezi gorutinami?

sobes.tech AI

Odpověď od AI

V Go dochází k automatické změně kontextu mezi gorutinami, ale ne v klasickém smyslu preemptivního multitaskingu, jako v operačních systémech.

Gorutiny jsou lehké vlákna spravovaná běhovým prostředím Go. Plánovač Go střídá provádění mezi gorutinami, aby efektivně využíval systémová vlákna.

Vlastnosti:

  • Plánovač Go používá kooperativní multitasking: gorutina musí předat řízení například při volání blokujících operací nebo funkcí, které explicitně yieldují.
  • Od verze Go 1.14 bylo přidáno omezené podporování preemption, které umožňuje plánovači přerušit gorutinu, pokud dlouho nepředá řízení.

Tímto způsobem dochází ke změně kontextu mezi gorutinami automaticky a je pro vývojáře transparentní, avšak s určitými odlišnostmi od klasických operačních systémů.