Sobes.tech
Junior — Middle

Goroutine-də kodun icrası ilə əməliyyat sisteminin səviyyəsində sistem ipi ilə işləmək arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Go'da gorutinalar — bu Go vaxtida boshqariladigan yengil oqimlar bo'lib, operatsion tizim tomonidan emas. Asosiy farqlar:

  • Yengillik: Gorutinalar juda kam xotira (odatda bir necha kilobaytli stek) talab qiladi, tizim oqimlari esa ancha ko'proq resurslarni talab qiladi.
  • Rejalashtirish: Gorutinalar rejalashtiruvchisi Go ish vaqti ichida joylashgan bo'lib, u gorutinalarni tizim oqimlariga taqsimlaydi, bu CPUdan samarali foydalanishni ta'minlaydi.
  • Yaratish va o'tkazish: Gorutinalar orasida yaratish va o'tkazish tizim oqimlariga qaraganda tezroq, chunki u yadro kontekstini o'zgartirishni talab qilmaydi.

Misol:

func main() {
    go func() {
        fmt.Println("Gorutina")
    }()
    fmt.Println("Asosiy oqim")
    time.Sleep(time.Second) // Gorutinaning tugashini kutamiz
}

Bu yerda, gorutina jarayon ichida ishga tushiriladi, lekin to'g'ridan-to'g'ri alohida tizim oqimiga mos kelmaydi.