Sobes.tech
Junior — Middle

Kako prinuditi planera Go da izvrši prebacivanje konteksta na drugu gorutinu?

sobes.tech АИ

Одговор од АИ

U Go jeziku, za prinudno prebacivanje konteksta između gorutina koristi se funkcija runtime.Gosched(). Ona obaveštava planera da je trenutna gorutina spremna da preda procesor drugim gorutinama, omogućavajući im da se izvrše.

Primer upotrebe:

package main

import (
    "fmt"
    "runtime"
)

func main() {
    go func() {
        for i := 0; i < 5; i++ {
            fmt.Println("Goroutine 1 -", i)
            runtime.Gosched() // predajemo planeru
        }
    }()

    for i := 0; i < 5; i++ {
        fmt.Println("Glavna gorutina -", i)
        runtime.Gosched() // predajemo planeru
    }
}

Na ovaj način, runtime.Gosched() omogućava eksplicitno da se drugim gorutinama da šansa za izvršavanje, bez blokiranja trenutne.