En la entrada anterior puedes ver cuales son las dependencias para poder usar una corrutina en tu proyecto.

La principal forma de iniciar una corrutina es con coroutine builder launch en un contexto de algún CoroutineScope. Vamos a verlo con varios ejemplos.

Como vemos se muestra primero "Hello,", eso es porque mostrar "World!" tardará al menos 1 segundo. Si no utilizásemos Thread.sleep(2000L), se terminaría la ejecución de la aplicación antes de que finalizase la corrutina.

Podemos sustituir este Thread.sleep por runBlocking (este solo se debe utilizar para pruebas) para evitar tener que calcular cuanto tiempo debería bloquearse el hilo principal en función de la duración de la corrutina.

Es más, podemos ejecutar varias en paralelo. Por ejemplo dos corrutinas que tardarían en finalizar 1 segundo una y 2 segundos otra, tendrán una duración total de 2 segundos, y no de 3 segundos, ya que la primera finalizaría cuando la segunda llevase 1 segundo, por lo que solo habría que esperar otro segundo más.

Como habrás visto, hemos añadido algo nuevo: Job. Pero de eso hablaremos en la siguiente entrada.


Enlaces de interés:

Menú