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