Junior — Middle
Ako nútiť plánovača Go, aby vykonal prepnutie kontextu na inú gorutinu?
sobes.tech AI
Odpoveď od AI
V jazyku Go sa používa funkcia runtime.Gosched() na vynútenie prepínania kontextu medzi gorutinami. Táto funkcia informuje plánovača, že aktuálna gorutina je pripravená odovzdať procesor iným gorutinám, čo im umožňuje byť vykonanými.
Príklad použitia:
package main
import (
"fmt"
"runtime"
)
func main() {
go func() {
for i := 0; i < 5; i++ {
fmt.Println("Goroutine 1 -", i)
runtime.Gosched() // odovzdanie plánovaču
}
}()
for i := 0; i < 5; i++ {
fmt.Println("Hlavná gorutina -", i)
runtime.Gosched() // odovzdanie plánovaču
}
}
Týmto spôsobom runtime.Gosched() umožňuje explicitne dať šancu iným gorutinám na vykonanie, bez blokovania aktuálnej.