Junior — Middle
Фарқи иҷрои коди дар гурутине бо кори системии дар сатҳи системаи операсионӣ чист?
sobes.tech AI
Ҷавоб аз AI
Горутинҳо дар Go — ин равандҳои сабукҳолӣ мебошанд, ки аз ҷониби runtime-и Go идора мешаванд, на аз ҷониби системаи оператсионӣ. Тафовутҳои асосӣ:
- Легковесӣ: Горутинҳо хеле кам ёдгирӣ мекунанд (одатан чанд килобайт стек), дар ҳоле ки равандҳои системӣ ба захираҳои бештар ниёз доранд.
- Тарҳрезӣ: Плангардонии горутинҳо дар runtime-и Go дарунҷо аст ва онҳоро байни равандҳои системӣ тақсим мекунад, ки истифодаи CPU-ро самаранок мекунад.
- Таҳия ва гузариш: Таҳия ва гузариш байни горутинҳо тезтар аст, нисбат ба равандҳои системӣ, зеро тағйир додани контексти ядро талаб намекунад.
Масалан:
func main() {
go func() {
fmt.Println("Горутин")
}()
fmt.Println("Раванди асосӣ")
time.Sleep(time.Second) // интизорӣ барои анҷоми горутин
}
Ин ҷо, горутин дар дохили раванди оғоз мешавад, аммо мустақиман ба раванди системӣ тааллуқ надорад.