Junior — Middle
Existujú spôsoby, ako ovplyvniť správanie systémového plánovača úloh?
sobes.tech AI
Odpoveď od AI
V jazyku Go existuje niekoľko spôsobov, ako ovplyvniť správanie systémového plánovača (scheduler), ktorý spravuje gorutiny:
-
runtime.GOMAXPROCS(n int) — nastavuje maximálny počet OS vlákien, ktoré môžu súčasne vykonávať gorutiny. Zmena tejto hodnoty ovplyvňuje paralelizmus.
-
runtime.Gosched() — umožňuje aktuálnej gorutine odovzdať procesor iným gorutinám volaním plánovača.
-
time.Sleep() — môže byť použitý na dočasné pozastavenie gorutiny, čo umožní vykonávanie iných.
-
primitívy synchronizácie (mutex, kanál) — ovplyvňujú synchronizáciu a blokovanie gorutín, nepriamo ovplyvňujúc plánovanie.
Príklad použitia GOMAXPROCS:
package main
import (
"fmt"
"runtime"
)
func main() {
fmt.Println("Predvolený GOMAXPROCS:", runtime.GOMAXPROCS(0))
runtime.GOMAXPROCS(2) // nastavíme 2 vlákna
fmt.Println("Aktualizovaný GOMAXPROCS:", runtime.GOMAXPROCS(0))
}
Týmto spôsobom môžete pomocou štandardného balíčka runtime riadiť správanie plánovača v Go.