Sobes.tech
Middle

Kotlin dilinde suspend fonksiyonu nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Suspend fonksiyonu — Kotlin'de "durdurulabilen" (suspend) ve daha sonra "devam ettirilebilen" (resume) bir fonksiyondur. Bu, uzun süreli işlemlerle (örneğin, ağ istekleri veya veritabanı işlemleri gibi) çalışmayı kolaylaştıran, asenkron ve engellemesiz kod yazmak için kullanılır.

Suspend fonksiyonlarının temel özellikleri:

  • suspend değiştiricisi: Fonksiyon adından önce suspend anahtar kelimesi ile tanımlanır.
  • Korutinlerle çalışma: Sadece diğer suspend fonksiyonlardan veya korutin oluşturucularından (örneğin, launch, async) çağrılır.
  • Engellemez doğası: Bir suspend fonksiyonun duraklatılması, çalıştığı thread'i engellemez. Bunun yerine, thread serbest bırakılır ve diğer görevleri yerine getirmeye devam eder, ve asenkron işlemin sonucu hazır olduğunda, fonksiyon duraklatıldığı yerden devam eder.
  • Açık işaretleme: suspend değiştiricisi, bu fonksiyonun potansiyel olarak uzun süren bir işlem olabileceğini ve doğrudan ana thread'de (UI thread) çalıştırılmaması gerektiğini açıkça gösterir.

Örnek:

// Normal fonksiyon
fun fetchDataBlocking(): String {
    // Engelleyen ağ çağrısı, takılabilir
    Thread.sleep(2000)
    return "Veri alındı"
}

// Suspend fonksiyon
suspend fun fetchDataNonBlocking(): String {
    // Asenkron ağ çağrısı
    // Korutina burada duraklatılır, thread engellenmez
    delay(2000) // Bir gecikmeyi taklit eden suspend fonksiyon örneği
    return "Veri asenkron alındı"
}

Suspend fonksiyonları, korutinler kullanılarak okunması ve bakımı kolay, asenkron kodların oluşturulması için temel oluşturur.