Sobes.tech
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 suspend funksiyadan 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 suspend funksiyalarini 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")
}