Junior — Middle
Cum poți forța planificatorul Go să efectueze schimbarea de context către o altă gorutină?
sobes.tech AI
Răspuns de la AI
În Go, pentru a forța schimbarea de context între goroutines, se folosește funcția runtime.Gosched(). Aceasta informează planificatorul că goroutine-ul curent este gata să cedeze procesorul altor goroutines, permițându-le să fie executate.
Exemplu de utilizare:
package main
import (
"fmt"
"runtime"
)
func main() {
go func() {
for i := 0; i < 5; i++ {
fmt.Println("Goroutine 1 -", i)
runtime.Gosched() // cedăm planificatorului
}
}()
for i := 0; i < 5; i++ {
fmt.Println("Goroutine principală -", i)
runtime.Gosched() // cedăm planificatorului
}
}
Astfel, runtime.Gosched() permite în mod explicit altor goroutines să fie executate, fără a bloca goroutine-ul curent.