Middle
Kotlin-də 'suspend' açar sözünün mənası nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Kotlin-də suspend açar sözü, potensial olaraq dayandırıla bilən və sonra davam etdirilə bilən bir funksiya və ya lambda ifadəsini işarə etmək üçün istifadə olunur. Bu cür funksiyalar korutinalar adlanır.
suspend funksiyalarının əsas xüsusiyyətləri:
- Yalnız başqa bir
suspendfunksiyadan və ya korutina scope-dan çağırıla bilər. - Bir funksiyanın dayandırılması, onun icra olunduğu thread-i bloklamır. Əvəzində, thread digər tapşırıqları yerinə yetirmək üçün istifadə oluna bilər.
- Dayandırılmış əməliyyatın (məsələn, şəbəkə sorğusu) tamamlanmasından sonra, funksiya dayandırıldığı yerdən işinə davam edir.
- Arxa planda, Kotlin tərtibçisi
suspendfunksiyalarını vəziyyət maşınlarına çevirir və Continuation-Passing Style (CPS) istifadə edir.
Nümunə:
// Uzun müddətli əməliyyatı simulyasiya edən suspend funksiyası nümunəsi
suspend fun fetchData(): String {
// Şəbəkə sorğusu və ya uzun müddətli tapşırığı simulyasiya edir
kotlinx.coroutines.delay(1000) // Thread-i bloklamadan dayandırma
return "Məlumatlar alındı"
}
// suspend funksiyasını çağıran funksiya
fun main() = kotlinx.coroutines.runBlocking { // runBlocking korutina scope yaradır
println("Məlumatlar yüklənir...")
val data = fetchData() // suspend funksiyasını çağır
println("Məlumatlar: $data")
}