Middle
¿Qué es una función suspend en el lenguaje Kotlin?
sobes.tech AI
Respuesta de la IA
La función suspend — es una función en Kotlin que puede ser "pausada" (suspend) y luego "reanudada" (resume). Se utiliza para escribir código asíncrono y no bloqueante en estilo imperativo, lo que simplifica el trabajo con operaciones a largo plazo, como solicitudes de red o operaciones con bases de datos.
Características clave de las funciones suspend:
- Modificador
suspend: Se declara con la palabra clavesuspendantes del nombre de la función. - Trabajo con corutinas: Solo se llaman desde otras funciones suspend o desde constructores de corutinas (por ejemplo,
launch,async). - Naturaleza no bloqueante: La suspensión de una función suspend no bloquea el hilo en el que se ejecuta. En su lugar, el hilo se libera para realizar otras tareas, y cuando el resultado de la operación asíncrona está listo, la ejecución de la función se reanuda desde el punto de suspensión.
- Marcado explícito: El modificador
suspendindica claramente que la llamada a esta función puede ser una operación larga y no debe ejecutarse directamente en el hilo principal (hilo UI).
Ejemplo:
// Función normal
fun fetchDataBlocking(): String {
// Llamada de red bloqueante, puede colgarse
Thread.sleep(2000)
return "Datos recibidos"
}
// Función suspend
suspend fun fetchDataNonBlocking(): String {
// Llamada de red asíncrona
// La corutina se suspende aquí, el hilo no se bloquea
delay(2000) // Ejemplo de función suspend que simula una demora
return "Datos recibidos de forma asíncrona"
}
Las funciones suspend son la base para construir código asíncrono fácil de leer y mantener, utilizando corutinas.