Ответ
В Go можно использовать runtime.Gosched() для явного указания планировщику переключиться на другую горутину. Это не гарантирует немедленное переключение, но дает подсказку планировщику.
package main
import (
"runtime"
"fmt"
)
func main() {
go func() {
for i := 0; i < 5; i++ {
fmt.Println("Горутина 1:", i)
}
}()
for i := 0; i < 5; i++ {
runtime.Gosched() // Даем шанс выполниться другим горутинам
fmt.Println("Главная горутина:", i)
}
}
Однако в большинстве случаев явное управление не требуется - планировщик Go эффективно распределяет время между горутинами. Gosched() полезен в редких случаях, например при тестировании или при реализации кооперативной многозадачности.