Junior — Middle
Minden goroutine alapértelmezés szerint egyszerre és párhuzamosan kell futnia?
sobes.tech MI
Válasz az MI-től
Nem, nem kötelező, hogy minden goroutine egy időben és párhuzamosan fusson alapértelmezés szerint. A goroutine-ok könnyű szálak, amelyeket a Go ütemezője ütemez.
Amikor több goroutine-t indítasz, azok szekvenciálisan vagy párhuzamosan futnak, a rendelkezésre álló rendszer szálak számától (GOMAXPROCS) és a jelenlegi terheléstől függően.
Alapértelmezés szerint, ha a GOMAXPROCS értéke 1, a goroutine-ok konkurens módon futnak, de nem párhuzamosan — azaz, a közöttük váltás az ütemező szintjén történik, de egyszerre csak egy fut.
A valódi párhuzamosság eléréséhez növelni kell a GOMAXPROCS értékét (általában a processzor magjainak számával megegyezően). Így több goroutine futtatható egyszerre különböző magokon.