Junior — Middle
Jak wymusić na planisty Go wykonanie przełączenia kontekstu na inną gorutynę?
sobes.tech AI
Odpowiedź od AI
W Go, do wymuszenia zmiany kontekstu między gorutynami używa się funkcji runtime.Gosched(). Informuje ona planistę, że bieżąca gorutyna jest gotowa do oddania procesora innym gorutynom, umożliwiając im wykonanie się.
Przykład użycia:
package main
import (
"fmt"
"runtime"
)
func main() {
go func() {
for i := 0; i < 5; i++ {
fmt.Println("Gorutyna 1 -", i)
runtime.Gosched() // oddajemy planistę
}
}()
for i := 0; i < 5; i++ {
fmt.Println("Gorutyna główna -", i)
runtime.Gosched() // oddajemy planistę
}
}
W ten sposób runtime.Gosched() pozwala wyraźnie dać innym gorutynom szansę na wykonanie, nie blokując bieżącej.