Sobes.tech
Junior — Middle

¿Cuál es el papel principal de las corutinas en la programación y en qué se diferencian de los hilos?

sobes.tech AI

Respuesta de la IA

Las corrutinas son hilos de ejecución ligeros que permiten escribir código asíncrono y concurrente de manera más sencilla y comprensible. En Android (y Kotlin), las corrutinas se utilizan para realizar tareas en segundo plano sin bloquear el hilo principal (hilo UI).

Diferencias principales entre corrutinas y hilos:

  • Ligereza: las corrutinas ocupan mucho menos recursos que los hilos del sistema.
  • Gestión: las corrutinas son gestionadas por un planificador dentro de la aplicación, no por el sistema operativo.
  • Pausar y reanudar: las corrutinas pueden pausarse en puntos específicos (suspend) y reanudarse, lo que simplifica la programación asíncrona.

Ejemplo de uso de corrutinas en Kotlin para Android:

import kotlinx.coroutines.*

fun loadData() {
    GlobalScope.launch(Dispatchers.Main) { // iniciamos una corrutina en el hilo principal
        val data = withContext(Dispatchers.IO) { // cambiamos a un hilo de fondo
            fetchDataFromNetwork() // solicitud larga
        }
        updateUI(data) // actualizamos la interfaz de usuario
    }
}

De esta forma, las corrutinas permiten escribir código asíncrono que parece secuencial, sin callbacks complejos ni bloqueos.