Welke manieren van taken uitvoeren in Coroutines ken je?
sobes.tech AI
Antwoord van AI
In Kotlin Coroutines kunnen taken op verschillende manieren worden uitgevoerd:
-
launch — start een nieuwe coroutine die parallel wordt uitgevoerd en geen resultaat retourneert. Gebruikt voor achtergrondtaken waar geen resultaat nodig is.
-
async — start een coroutine die een resultaat retourneert in de vorm van Deferred, waardoor je het resultaat kunt krijgen via await(). Geschikt voor parallelle berekeningen met resultaat.
-
runBlocking — blokkeert de huidige thread totdat de coroutine is voltooid, en wordt vaak gebruikt in main-functies of tests.
-
withContext — verandert de uitvoeringcontext (bijvoorbeeld naar Dispatchers.IO voor invoer-/uitvoerbewerkingen) en voert een codeblok uit dat het resultaat teruggeeft.
Voorbeeld:
import kotlinx.coroutines.*
fun main() = runBlocking {
launch {
delay(1000)
println("Taak in launch")
}
val result = async {
delay(500)
42
}
println("Resultaat van async: ${result.await()}")
}