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()}")
}