Sobes.tech
Junior — Middle

Quais formas de executar tarefas em Coroutines você conhece?

sobes.tech IA

Resposta da IA

No Kotlin Coroutines, as tarefas podem ser realizadas de várias maneiras:

  • launch — inicia uma nova coroutine que é executada em paralelo e não retorna resultado. Usado para tarefas em segundo plano onde o resultado não é necessário.

  • async — inicia uma coroutine que retorna um resultado na forma de Deferred, permitindo obter o resultado através de await(). Adequado para cálculos paralelos com resultado.

  • runBlocking — bloqueia o thread atual até que a coroutine termine, frequentemente usado em funções main ou testes.

  • withContext — muda o contexto de execução (por exemplo, para Dispatchers.IO para operações de entrada/saída) e executa um bloco de código, retornando o resultado.

Exemplo:

import kotlinx.coroutines.*

fun main() = runBlocking {
    launch {
        delay(1000)
        println("Tarefa em launch")
    }

    val result = async {
        delay(500)
        42
    }

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