Junior — Middle
Existují způsoby, jak ovlivnit chování systémového plánovače úloh?
sobes.tech AI
Odpověď od AI
V jazyce Go existuje několik způsobů, jak ovlivnit chování systémového plánovače (scheduler), který spravuje gorutiny:
-
runtime.GOMAXPROCS(n int) — nastavuje maximální počet OS vláken, která mohou současně vykonávat gorutiny. Změna této hodnoty ovlivňuje paralelismus.
-
runtime.Gosched() — umožňuje aktuální gorutině předat procesor jiným gorutinám voláním plánovače.
-
time.Sleep() — lze použít k dočasnému pozastavení gorutiny, což umožní vykonávání jiných gorutin.
-
primitivy synchronizace (mutex, kanál) — ovlivňují synchronizaci a blokování gorutin, nepřímo ovlivňují plánování.
Příklad použití GOMAXPROCS:
package main
import (
"fmt"
"runtime"
)
func main() {
fmt.Println("Výchozí GOMAXPROCS:", runtime.GOMAXPROCS(0))
runtime.GOMAXPROCS(2) // nastavíme 2 vlákna
fmt.Println("Aktualizované GOMAXPROCS:", runtime.GOMAXPROCS(0))
}
Tímto způsobem lze pomocí standardního balíčku runtime řídit chování plánovače v jazyce Go.