Junior — Middle
Asinxron proqramlaşdırma kontekstində async açar sözü ilə asinxron funksiyaların istifadəsi ilə launch çağırışının fərqi nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Açar söz async asinxron funksiyanı elan etmək üçün istifadə olunur və Deferred və ya Job tipində obyekt qaytarır və daxili suspend funksiyalar vasitəsilə dayandırıla bilər. Belə bir funksiyanın çağırılması avtomatik olaraq işə başlamır, əvəzinə await ilə əldə edilə bilən gecikdirilmiş nəticə verir.
launch yeni korutina başlatan və dərhal onun icrasına başlayan funksiyadır. Bu, korutinanın həyat dövrünü idarə etmək üçün istifadə edilə bilən Job obyektini qaytarır (məsələn, ləğv etmək üçün).
Nümunə:
suspend fun fetchData(): String {
delay(1000)
return "Məlumat"
}
fun main() = runBlocking {
// async, Deferred qaytarır, icra dərhal başlayır
val deferred = async { fetchData() }
println("Başqa iş görür")
val result = deferred.await() // nəticəni gözləyir
println(result)
// launch, korutina başlatır, amma nəticə qaytarmır
val job = launch {
val data = fetchData()
println(data)
}
job.join() // tamamlanmasını gözləyir
}
Xülasə:
asyncasinxron əməliyyatı başlatmaq üçün istifadə olunur.launcharxa plan tapşırıqları üçün nəticəsiz korutina başlatır.asyncDeferred,launchisəJobqaytarır.