Middle
Hogyan lehet kezelni a goroutine-ok futtatásához használt szálak számát?
sobes.tech MI
Válasz az MI-től
Go nyelvben a goroutine-ok végrehajtásához használt operációs rendszer szálak számát a runtime.GOMAXPROCS(n) függvény szabályozza. Ez a függvény határozza meg a maximális operációs rendszer szálak számát, amelyek egyidejűleg futtathatják a Go felhasználói kódját.
Alapértelmezés szerint a GOMAXPROCS megegyezik a gépen lévő logikai processzorok számával. Ennek az értéknek a módosításával a program párhuzamosságát lehet irányítani.
Példa:
package main
import (
"fmt"
"runtime"
)
func main() {
fmt.Println("Alapértelmezett GOMAXPROCS:", runtime.GOMAXPROCS(0)) // Aktuális érték lekérdezése
runtime.GOMAXPROCS(2) // Maximum beállítása 2 szálra
fmt.Println("Frissített GOMAXPROCS:", runtime.GOMAXPROCS(0))
}
Fontos megérteni, hogy a GOMAXPROCS befolyásolja a goroutine-ok párhuzamos végrehajtását, de nem korlátozza azok számát — lehetnek ezrek, amelyek a rendelkezésre álló szálakra vannak ütemezve.