Junior — Middle
Jak lze vynutit, aby plánovač Go provedl přepnutí kontextu na jinou gorutinu?
sobes.tech AI
Odpověď od AI
V jazyce Go se k funkci runtime.Gosched() používá k vynucení přepínání kontextu mezi gorutinami. Tato funkce informuje plánovač, že aktuální gorutina je připravena předat procesor jiným gorutinám, což jim umožní být vykonány.
Příklad použití:
package main
import (
"fmt"
"runtime"
)
func main() {
go func() {
for i := 0; i < 5; i++ {
fmt.Println("Goroutine 1 -", i)
runtime.Gosched() // předání plánovači
}
}()
for i := 0; i < 5; i++ {
fmt.Println("Hlavní gorutina -", i)
runtime.Gosched() // předání plánovači
}
}
Tímto způsobem runtime.Gosched() umožňuje explicitně dát šanci jiným gorutinám na vykonání, aniž by blokoval tu aktuální.