Sobes.tech
Junior — Middle

Ի՞նչ տարբերություն կա գորուտինայի և համակարգային թելերի միջև գործառույթների իրականացման համատեքստում։

sobes.tech AI

Պատասխան AI-ից

Gorutina — դա Go (runtime) գործարկման միջավայրի կողմից կառավարվող թեթև գործարկման միավոր է, որը շատ քիչ հիշողություն է օգտագործում և կարող է միաժամանակ մեծ քանակությամբ գործարկվել։ Սիստեմի հոսք (thread) ավելի ծանր գործառույթ է օպերացիոն համակարգի կողմից։

Հիմնական տարբերությունները՝

  • Gorutina-երը շատ ավելի թեթև են ռեսուրսների տեսանկյունից, քան համակարգի հոսքերը։
  • Gorutina-երի պլանավորումը տեղի է ունենում Go runtime-ի ներսում, ոչ թե օպերացիոն համակարգի կողմից։
  • Հազարավոր gorutina-եր կարող են աշխատել միաժամանակ, մինչդեռ համակարգի հոսքերի թիվը սովորաբար ավելի փոքր է ստեղծման և փոխարկման ծախսերի պատճառով։

Gorutina ստեղծելու օրինակ՝

func առաջադրանք() {
    fmt.Println("Աշխատանքի կատարում")
}

func main() {
    go առաջադրանք() // gorutina սկսում
    time.Sleep(time.Second) // սպասում ենք, որպեսզի gorutina- ն ավարտվի
}

Այսպիսով, gorutina-երը թույլ են տալիս արդյունավետորեն իրականացնել բազմաթիվ առաջադրանքներ միաժամանակ, ավելի քիչ ծախսերով։