Sobes.tech
Junior — Middle

Goroutinlarni ishlatishning iplar (threads) bilan taqqoslaganda qanday afzalliklari bor?

sobes.tech AI

AIdan javob

Go'da goroutinlar — bu yengil oqimlar bo'lib, ular operatsion tizim tomonidan emas, Go ishga tushirish muhitining boshqaruvi ostida bo'ladi. Ularning an'anaviy oqimlarga nisbatan afzalliklari:

  • Kamroq xotira iste'moli: Goroutinlar bir necha kilobayt xotira egallaydi, oqimlar esa — megabayt.
  • Tez yaratish va o'tish: Goroutinlarni ishga tushirish va ularni o'zgartirish juda tezroq.
  • Soddalashtirilgan sinxronizatsiya: Go xavfsiz ma'lumot almashinuvi uchun kanallarni taqdim etadi, bu esa bir vaqtning o'zida bajariladigan dasturlashni soddalashtiradi.
  • Kengaytiriluvchanlik: Minglab yoki hatto millionlab goroutinlarni bir vaqtning o'zida ishga tushirish mumkin.

Goroutine yaratish misoli:

func sayHello() {
    fmt.Println("Goroutine'dan salom")
}

func main() {
    go sayHello() // goroutine ishga tushiriladi
    time.Sleep(time.Second) // goroutine bajarilishini kutamiz
}