Sobes.tech
Junior — Middle

Фарқи байни гурути ва сими системӣ дар контексти иҷрои вазифаҳо чист?

sobes.tech AI

Ҷавоб аз AI

Горутин — бу Go (runtime) муҳити идоралайдиган енгил ишга тушириш бирлиги бўлиб, жуда кам ёдгорлик талаб қилади ва бир вақтнинг ўзида кўп миқдорда ишга туширилиши мумкин. Тизим йўли (thread) — бу операцион тизимнинг анча оғирроқ режалаштириш бирлиги.

Асосий фарқлар:

  • Горутиналар ресурслар бўйича тизим йўлидан анча енгилроқ.
  • Горутиналарнинг режалаштирилиши Go runtime ичида бўлиб, ОС томонидан эмас.
  • Минглаб горутиналар бир вақтда ишлай олади, тизим йўллари эса одатда кўпроқ бўлмайди, чунки уларни яратиш ва ўтказиш харажатлари бор.

Горутинани яратиш мисоли:

func вазифа() {
    fmt.Println("Вазифа бажарилмоқда")
}

func main() {
    go вазифа() // горутинани ишга тушириш
    time.Sleep(time.Second) // горутинанинг якунланиши учун кутамиз
}

Шу тариқа, горутиналар кўплаб вазифаларни самарали параллел бажаришга имкон беради, камроқ ресурс сарфлайди.