Junior — Middle
Go планировщусуна башка goroutine'га контекстти күчүрүүнү мажбурлоо үчүн кандай кылуу керек?
sobes.tech AI
AIден жооп
Go тилинде, goroutine'лер арасында контекстти алмаштырууну мажбурлоо үчүн runtime.Gosched() функциясы колдонулат. Бул планировщикке азыркы goroutine башка goroutine'лергө процессорду берүү даяр экенин билдирет жана алардын ишке ашуусуна мүмкүндүк берет.
Колдонуу мисалы:
package main
import (
"fmt"
"runtime"
)
func main() {
go func() {
for i := 0; i < 5; i++ {
fmt.Println("Goroutine 1 -", i)
runtime.Gosched() // планировщикке берүү
}
}()
for i := 0; i < 5; i++ {
fmt.Println("Негизги goroutine -", i)
runtime.Gosched() // планировщикке берүү
}
}
Мындайча, runtime.Gosched() башка goroutine'лердин ишке киришине ачык мүмкүндүк берет, учурдагыны блоктогон жок.