Junior — Middle
Kaip priversti Go planuotoją perjungti kontekstą į kitą gorutina?
sobes.tech AI
Atsakymas iš AI
Go kalboje, norint priverstinai keisti kontekstą tarp gorutinų, naudojama funkcija runtime.Gosched(). Ji praneša planuotojui, kad dabartinė gorutina yra pasiruošusi perduoti procesorių kitoms gorutinoms, leidžiant joms būti vykdomoms.
Naudojimo pavyzdys:
package main
import (
"fmt"
"runtime"
)
func main() {
go func() {
for i := 0; i < 5; i++ {
fmt.Println("Gorutina 1 -", i)
runtime.Gosched() // perduodame planuotojui
}
}()
for i := 0; i < 5; i++ {
fmt.Println("Pagrindinė gorutina -", i)
runtime.Gosched() // perduodame planuotojui
}
}
Šiuo būdu, runtime.Gosched() leidžia aiškiai suteikti galimybę kitoms gorutinoms būti vykdomoms, neblokuojant dabartinės.