Sobes.tech
Junior — Middle

Go tilida goroutine'lar qanday amalga oshiriladi va boshqariladi?

sobes.tech AI

AIdan javob

Go'da gorutinlar — bu Go ish vaqti tomonidan boshqariladigan yengil oqimlar bo'lib, operatsion tizim tomonidan emas. Ular minimal resurslar bilan konkurrent kod yozishga imkon beradi.

Gorutinlarni amalga oshirish va boshqarishning asosiy jihatlari:

  • Yaratish: Gorutina go kalit so'zi yordamida funksiyani chaqirishdan oldin boshlanadi.
  • Rejalashtiruvchi: Go ning o'z rejalashtiruvchisi bor, u gorutinlarni tizim iplariga taqsimlaydi (M:N rejalashtirish).
  • Yakun: Har bir gorutina dinamik yostiqqa ega bo'lib, ehtiyojga qarab o'sishi yoki kamayishi mumkin, boshlang'ich holatda bir necha kilobayt.
  • Aloqa: Gorutinlar o'rtasida sinxronizatsiya va ma'lumot almashish uchun kanallar ishlatiladi.

Gorutina yaratish misoli:

func sayHello() {
    fmt.Println("Gorutindən salom")
}

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

Shu tarzda, gorutinalar minimal xarajatlar bilan kodni parallel ravishda bajarishning samarali usulidir.