Sobes.tech
Middle

Kotlin dilində suspend funksiyası nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Suspend funksiyası — Kotlin-də "dayandırıla bilən" (suspend) və daha sonra "yenidən başlatıla bilən" (resume) funksiyadır. Bu, uzunmüddətli əməliyyatlarla, məsələn, şəbəkə sorğuları və ya verilənlər bazası əməliyyatları kimi, asinxron və bloklamayan kod yazmağa imkan verir və işləri sadələşdirir.

Suspend funksiyalarının əsas xüsusiyyətləri:

  • suspend modifikatoru: Funksiyanın adından əvvəl suspend açar sözü ilə elan edilir.
  • Korutinlərlə işləmə: Yalnız digər suspend funksiyalarından və ya korutin qurucularından (məsələn, launch, async) çağırılır.
  • Bloklamayan təbiət: Suspend funksiyanın dayandırılması, onun işlədiyi ipi bloklamır. Əvəzində, ip sərbəst buraxılır və digər tapşırıqları yerinə yetirmək üçün istifadə olunur, və asinxron əməliyyatın nəticəsi hazır olduqda, funksiyanın icrası dayandırıldığı yerdən davam edir.
  • Açıq işarə: suspend modifikatoru, bu funksiyanın uzunmüddətli əməliyyat ola biləcəyini və birbaşa əsas ipdə (UI ip) icra edilməməli olduğunu açıq şəkildə göstərir.

Nümunə:

// Adi funksiya
fun fetchDataBlocking(): String {
    // Bloklayan şəbəkə çağırışı, ilişə bilər
    Thread.sleep(2000)
    return "Məlumatlar alındı"
}

// Suspend funksiyası
suspend fun fetchDataNonBlocking(): String {
    // Asinxron şəbəkə çağırışı
    // Korutina burada dayandırılır, ip bloklanmır
    delay(2000) // Gecikməni simulyasiya edən suspend funksiyası nümunəsi
    return "Asinxron məlumatlar alındı"
}

Suspend funksiyaları, korutinlərdən istifadə etməklə asan oxunan və saxlanılan asinxron kodların qurulması üçün əsasdır.