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ů.