Sobes.tech
Junior — Middle

Ce metode de executare a sarcinilor în Coroutines cunoști?

sobes.tech AI

Răspuns de la AI

În Kotlin Coroutines, sarcinile pot fi efectuate în mai multe moduri:

  • launch — pornește o nouă coroutine care rulează în paralel și nu returnează rezultat. Folosit pentru sarcini de fundal unde rezultatul nu este necesar.

  • async — pornește o coroutine care returnează un rezultat sub forma de Deferred, permițând obținerea rezultatului prin await(). Potrivit pentru calcule paralele cu rezultat.

  • runBlocking — blochează firul curent până când coroutine se finalizează, și este adesea folosit în funcții main sau în teste.

  • withContext — schimbă contextul de execuție (de exemplu, la Dispatchers.IO pentru operații de intrare/ieșire) și execută un bloc de cod, returnând rezultatul.

Exemplu:

import kotlinx.coroutines.*

fun main() = runBlocking {
    launch {
        delay(1000)
        println("Sarcină în launch")
    }

    val result = async {
        delay(500)
        42
    }

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