Middle
Kotlin'da 'suspend' kalit so'zi nima anglatadi?
sobes.tech AI
AIdan javob
Kotlin'da suspend anahtar kelimesi, potensial ravishda to'xtatilishi va keyinchalik davom ettirilishi mumkin bo'lgan funksiyani yoki lambda ifodasini belgilash uchun ishlatiladi. Bunday funksiyalar korutinalar deb ataladi.
suspend funksiyalarining asosiy xususiyatlari:
- Ular faqat boshqa
suspendfunksiyadan yoki korutina scope'idan chaqirilishi mumkin. - Funksiyaning to'xtatilishi uning bajarilayotgan thread'ini bloklamaydi. O'rniga, thread boshqa vazifalarni bajarish uchun ishlatilishi mumkin.
- To'xtatilgan operatsiya (masalan, tarmoq so'rovi) bajarilgandan so'ng, funksiya o'z ishini to'xtatilgan joydan davom ettiradi.
- Orqa fon, Kotlin kompilyatori
suspendfunksiyalarini holat mashinalariga aylantiradi, Continuation-Passing Style (CPS) ni ishlatadi.
Misol:
// Uzun davom etadigan operatsiyani simulyatsiya qilish uchun suspend funksiyasi misoli
suspend fun fetchData(): String {
// Tarmoq so'rovi yoki uzun vazifani simulyatsiya qilish
kotlinx.coroutines.delay(1000) // Thread'ni bloklamasdan to'xtatish
return "Ma'lumotlar olindi"
}
// suspend funksiyasini chaqiradigan funksiya
fun main() = kotlinx.coroutines.runBlocking { // runBlocking korutina scope yaratadi
println("Ma'lumotlar yuklanmoqda...")
val data = fetchData() // suspend funksiyasini chaqirish
println("Ma'lumotlar: $data")
}