Sobes.tech
Junior — Middle

Vazifalarni bajarish kontekstida, goroutine va tizim ipi o'rtasidagi farq nima?

sobes.tech AI

AIdan javob

Gorutina — bu Go (runtime) ishga tushirish muhitining boshqaradigan yengil bajarish birligi bo‘lib, juda kam xotira talab qiladi va bir vaqtning o‘zida ko‘p sonda ishga tushirilishi mumkin. Tizim ipi (thread) — bu operatsion tizimning yanada og‘irroq rejalashtirish birligidir.

Asosiy farqlar:

  • Gorutinalar tizim iplariga qaraganda resurslar jihatidan ancha yengil.
  • Gorutinalarning rejalashtirilishi Go runtime ichida amalga oshadi, OS emas.
  • Minglab gorutinalar bir vaqtning o‘zida ishlay oladi, odatda tizim iplarining soni esa kamroq bo‘ladi, chunki ular yaratish va almashtirish uchun xarajatlar talab qiladi.

Gorutina yaratish misoli:

func vazifa() {
    fmt.Println("Vazifa bajarilmoqda")
}

func main() {
    go vazifa() // gorutina ishga tushurish
    time.Sleep(time.Second) // gorutina bajarilishini kutamiz
}

Shu tarzda, gorutinalar ko‘p vazifalarni samarali tarzda parallel bajarishga imkon beradi, kamroq resurs bilan.