Sobes.tech
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.