Sobes.tech
Junior — Middle

Jak lze vynutit, aby plánovač Go provedl přepnutí kontextu na jinou gorutinu?

sobes.tech AI

Odpověď od AI

V jazyce Go se k funkci runtime.Gosched() používá k vynucení přepínání kontextu mezi gorutinami. Tato funkce informuje plánovač, že aktuální gorutina je připravena předat procesor jiným gorutinám, což jim umožní být vykonány.

Příklad použití:

package main

import (
    "fmt"
    "runtime"
)

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

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

Tímto způsobem runtime.Gosched() umožňuje explicitně dát šanci jiným gorutinám na vykonání, aniž by blokoval tu aktuální.