Junior — Middle
Kuidas sundida Go planeerijat teostama konteksti vahetust teise gorutina?
sobes.tech AI
Vastus AI-lt
Go keeles kasutatakse runtime.Gosched() funktsiooni, et sunniviisiliselt vahetada konteksti gorutinade vahel. See teavitab planeerijat, et käimasolev gorutin on valmis protsessorit teistele gorutinadele üle andma, võimaldades neil täidetud saada.
Kasutusnäide:
package main
import (
"fmt"
"runtime"
)
func main() {
go func() {
for i := 0; i < 5; i++ {
fmt.Println("Goroutine 1 -", i)
runtime.Gosched() // üleandmine planeerijale
}
}()
for i := 0; i < 5; i++ {
fmt.Println("Peamine goroutine -", i)
runtime.Gosched() // üleandmine planeerijale
}
}
Sellisel viisil võimaldab runtime.Gosched() selgelt anda võimaluse teistele gorutinadele täitmiseks, ilma et see blokeeriks käimasolevat gorutinit.