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:
suspendmodifikatori: Funktsiya nomidan oldinsuspendkalit 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:
suspendmodifikatori, 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.