Sobes.tech
Senior

Kam smerujú gorutiny pri ich vytváraní – do lokálnej alebo globálnej fronty plánovača Go?

sobes.tech AI

Odpoveď od AI

Pri vytváraní gorutiny v Go sa tá dostane do miestneho frontu plánovača (local run queue), ktorý patrí k určitému M (stroju, systémovému vláknu).

Runtime Go používa model M:N, kde M sú systémové vlákna a G sú gorutiny. Každé M má svoju vlastnú miestnu frontu gorutiny na vykonanie. Ak sa miestna fronta preplní alebo je prázdna, plánovač môže gorutiny vyvažovať medzi miestnou a globálnou frontou.

Týmto spôsobom je nová gorutina najskôr umiestnená do miestnej fronty plánovača, čo umožňuje efektívne využitie cache procesora a znižuje náklady na prepínanie kontextu.