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:
suspenddeğiştiricisi: Fonksiyon adından öncesuspendanahtar 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:
suspenddeğ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.