Junior — Middle
Go planlayıcısına başqa gorutina üçün kontekst dəyişdirməsini necə məcbur etmək olar?
sobes.tech Süni İntellekt
AI-dan cavab
Go dilində, goroutine'lar arasında kontekst dəyişimini zorlaşdırmaq üçün runtime.Gosched() funksiyası istifadə olunur. Bu, planlayıcıya hazır olduğunu bildirir ki, cari goroutine digər goroutine'lərə prosessoru təhvil versin və onlar icra olunsun.
İstifadə nümunəsi:
package main
import (
"fmt"
"runtime"
)
func main() {
go func() {
for i := 0; i < 5; i++ {
fmt.Println("Goroutine 1 -", i)
runtime.Gosched() // planlayıcıya təhvil veririk
}
}()
for i := 0; i < 5; i++ {
fmt.Println("Əsas goroutine -", i)
runtime.Gosched() // planlayıcıya təhvil veririk
}
}
Beləliklə, runtime.Gosched() digər goroutine'lərin icrasına imkan verir, cari goroutine-i bloklamadan.