Sobes.tech
Junior — Middle

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