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