Junior — Middle
Дар кадом ҳолатҳо вазифае, ки дар goroutine оғоз шудааст, метавонад ба навбати глобалии нақшакаш илова карда шавад?
sobes.tech AI
Ҷавоб аз AI
Go-да, горутинада ишке асырылган вазифа түбәндәге очракларда гомуми планировщик чиратасына өстәлә ала:
-
goбелән ясалганда:go func() { ... }()чакырганда, яңа горутина ясала һәм үтәү өчен гомуми планировщик чиратасына урнаша. -
Әгәр хәзерге агым (M) мәшгуль яки артык йөкләнгән булса: Планировщик горутинаны гомуми чиратка күчерә ала, йөкне агымнар арасында бүлү өчен.
-
Горутин блокланган вакытта: Әгәр горутина ресурс көтә (мәсәлән, канал яки таймер), ул туктатылырга мөмкин һәм блоктан чыгарыла алгач, гомуми чиратка өстәлә.
-
Локаль планировщик чиратасы буш булганда: Планировщик гомуми чираттан бурычлар ала, йөкне баланслау өчен.
Горутина башлау үрнәге:
func main() {
go func() {
fmt.Println("Горутинадан сәлам")
}()
time.Sleep(time.Second) // горутинаның үтәлүенә вакыт бирү өчен
}
Монда, горутина шунда ук гомуми планировщик чиратасына өстәлә һәм үтәлә.