Sobes.tech
Middle

Kotlin tilida suspend-funksiyasi nima?

sobes.tech AI

AIdan javob

Suspend funktsiyasi — bu Kotlin'da "to'xtatiladigan" (suspend) va keyinchalik "qayta boshlanadigan" (resume) bo'lishi mumkin bo'lgan funktsiya. U uzoq davom etadigan operatsiyalar bilan ishlashni soddalashtiradigan, asinxron va bloklamasdan yozilgan kodni yozish uchun ishlatiladi, masalan, tarmoq so'rovlar yoki ma'lumotlar bazasi operatsiyalari.

Suspend funktsiyalarining asosiy xususiyatlari:

  • suspend modifikatori: Funktsiya nomidan oldin suspend kalit so'zi bilan e'lon qilinadi.
  • Korutinlar bilan ishlash: Faqat boshqa suspend funktsiyalardan yoki korutinlar quruvchilaridan (masalan, launch, async) chaqiriladi.
  • Bloklamasdan tabiat: Suspend funktsiyaning to'xtatilishi, uni bajaradigan ipni bloklamaydi. O'rniga, ip bo'shatiladi va boshqa vazifalarni bajarishga imkon beradi, va asinxron operatsiya natijasi tayyor bo'lsa, funktsiya to'xtatilgan joydan davom etadi.
  • Aniq belgilash: suspend modifikatori, bu funktsiyani chaqirish uzoq davom etadigan operatsiya bo'lishi mumkinligini va uni to'g'ridan-to'g'ri asosiy ipda (UI ip) bajarish kerak emasligini aniq ko'rsatadi.

Misol:

// Oddiy funktsiya
fun fetchDataBlocking(): String {
    // Bloklovchi tarmoq chaqiruvi, to'xtab qolishi mumkin
    Thread.sleep(2000)
    return "Ma'lumotlar olindi"
}

// Suspend funktsiya
suspend fun fetchDataNonBlocking(): String {
    // Asinxron tarmoq chaqiruvi
    // Korutina bu yerda to'xtatiladi, ip bloklanmaydi
    delay(2000) // Delayni simulyatsiya qiluvchi suspend funktsiya misoli
    return "Ma'lumotlar asinxron olindi"
}

Suspend funktsiyalar, korutinlar yordamida o'qilishi va saqlanishi oson bo'lgan asinxron kodlarni qurish uchun asos bo'lib xizmat qiladi.