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.