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