Junior — Middle
Asenkron programlama bağlamında, async anahtar kelimesiyle asenkron fonksiyonların kullanımı ile launch çağrısı arasındaki fark nedir?
sobes.tech yapay zeka
AI'dan gelen yanıt
async anahtar kelimesi, Deferred veya Job türünde bir nesne döndüren ve içindeki suspend fonksiyonlar kullanılarak askıya alınabilen asenkron bir fonksiyon bildirmek için kullanılır. Böyle bir fonksiyon çağrısı otomatik olarak çalıştırılmaz, bunun yerine await ile alınabilecek ertelenmiş bir sonuç döner.
launch ise yeni bir coroutine başlatan ve hemen çalışmaya başlayan bir fonksiyondur. Bu, coroutine'in yaşam döngüsünü yönetmek için kullanılabilecek bir Job nesnesi döner (örneğin, iptal etmek için).
Örnek:
suspend fun fetchData(): String {
delay(1000)
return "Veri"
}
fun main() = runBlocking {
// async, Deferred döner, çalışmaya hemen başlar
val deferred = async { fetchData() }
println("Başka işler yapılıyor")
val result = deferred.await() // sonucu bekle
println(result)
// launch, coroutine başlatır ama sonuç döndürmez
val job = launch {
val data = fetchData()
println(data)
}
job.join() // tamamlanmasını bekle
}
Özetle:
async, sonuç döndüren asenkron bir işlemi başlatmak için kullanılır.launch, arka plan görevleri için sonuç döndürmeyen bir coroutine başlatır.asyncDeferred,launchiseJobdöner.