Sobes.tech
Junior — Middle

Coroutines'ta görevleri yerine getirmenin hangi yollarını biliyorsun?

sobes.tech yapay zeka

AI'dan gelen yanıt

Kotlin Coroutines'ta görevler birkaç şekilde gerçekleştirilebilir:

  • launch — yeni bir coroutine başlatır, paralel olarak çalışır ve sonuç döndürmez. Arka plan görevleri için kullanılır, sonuç gerekmez.

  • async — sonuç döndüren bir Deferred ile sonuçlanan bir coroutine başlatır ve sonucu await() ile almayı sağlar. Sonuçlu paralel hesaplamalar için uygundur.

  • runBlocking — mevcut akışı, coroutine tamamlanana kadar engeller ve genellikle main fonksiyonlarında veya testlerde kullanılır.

  • withContext — yürütme bağlamını değiştirir (örneğin, giriş-çıkış işlemleri için Dispatchers.IO) ve bir kod bloğu çalıştırır, sonucu döndürür.

Örnek:

import kotlinx.coroutines.*

fun main() = runBlocking {
    launch {
        delay(1000)
        println("launch içindeki görev")
    }

    val result = async {
        delay(500)
        42
    }

    println("async sonucu: ${result.await()}")
}