Sobes.tech
Junior — Middle

Ako nútiť plánovača Go, aby vykonal prepnutie kontextu na inú gorutinu?

sobes.tech AI

Odpoveď od AI

V jazyku Go sa používa funkcia runtime.Gosched() na vynútenie prepínania kontextu medzi gorutinami. Táto funkcia informuje plánovača, že aktuálna gorutina je pripravená odovzdať procesor iným gorutinám, čo im umožňuje byť vykonanými.

Príklad použitia:

package main

import (
    "fmt"
    "runtime"
)

func main() {
    go func() {
        for i := 0; i < 5; i++ {
            fmt.Println("Goroutine 1 -", i)
            runtime.Gosched() // odovzdanie plánovaču
        }
    }()

    for i := 0; i < 5; i++ {
        fmt.Println("Hlavná gorutina -", i)
        runtime.Gosched() // odovzdanie plánovaču
    }
}

Týmto spôsobom runtime.Gosched() umožňuje explicitne dať šancu iným gorutinám na vykonanie, bez blokovania aktuálnej.