Sobes.tech
Junior — Middle

Kā piespiest Go plānotāju veikt konteksta pārslēgšanu uz citu gorutinu?

sobes.tech AI

Atbilde no AI

Go valodā, lai piespiestu konteksta maiņu starp gorutīnām, tiek izmantota funkcija runtime.Gosched(). Tā informē plānotāju, ka pašreizējā gorutina ir gatava nodot procesoru citām gorutīnām, ļaujot tām tikt izpildītām.

Piemērs lietošanai:

package main

import (
    "fmt"
    "runtime"
)

func main() {
    go func() {
        for i := 0; i < 5; i++ {
            fmt.Println("Gorutina 1 -", i)
            runtime.Gosched() // nodod plānotājam
        }
    }()

    for i := 0; i < 5; i++ {
        fmt.Println("Galvenā gorutina -", i)
        runtime.Gosched() // nodod plānotājam
    }
}

Tādējādi, runtime.Gosched() ļauj skaidri dot iespēju citām gorutīnām tikt izpildītām, neblokējot pašreizējo.