Sobes.tech
Senior

Za čo je zodpovedná premenná GOMAXPROCS? Čo sa stane, ak ju nastavíme na jeden?

sobes.tech AI

Odpoveď od AI

Premenná prostredia GOMAXPROCS v Go určuje maximálny početok vlákien operačného systému (OS threads), ktoré môžu súčasne vykonávať gorutiny v Go.

Ak nastavíte GOMAXPROCS=1, plánovač Go použije iba jedno vlákno na vykonanie všetkých gorutín, čo v podstate obmedzí paralelizmus na úroveň jedného jadra procesora. To môže viesť k zníženiu výkonu na viacprocesorových systémoch, najmä ak je program navrhnutý na paralelné spracovanie.

Príklad nastavenia:

import (
    "runtime"
    "fmt"
)

func main() {
    runtime.GOMAXPROCS(1) // obmedzíme na jedno vlákno
    fmt.Println("GOMAXPROCS nastavené na", runtime.GOMAXPROCS(0))
}

Týmto spôsobom GOMAXPROCS riadi úroveň paralelizmu a jeho správne nastavenie je dôležité pre efektívne využívanie zdrojov.