Sobes.tech
Junior — Middle

Quali metodi di esecuzione dei compiti nelle Coroutines conosci?

sobes.tech AI

Risposta dell'AI

In Kotlin Coroutines, le attività possono essere eseguite in diversi modi:

  • launch — avvia una nuova coroutine che viene eseguita in parallelo e non restituisce risultato. Usata per attività in background dove il risultato non è necessario.

  • async — avvia una coroutine che restituisce un risultato sotto forma di Deferred, permettendo di ottenere il risultato tramite await(). Adatta per calcoli paralleli con risultato.

  • runBlocking — blocca il thread corrente fino al completamento della coroutine, spesso usata in funzioni main o nei test.

  • withContext — cambia il contesto di esecuzione (ad esempio, a Dispatchers.IO per operazioni di input/output) e esegue un blocco di codice, restituendo il risultato.

Esempio:

import kotlinx.coroutines.*

fun main() = runBlocking {
    launch {
        delay(1000)
        println("Compito in launch")
    }

    val result = async {
        delay(500)
        42
    }

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