Sobes.tech
Junior

¿En qué consiste la diferencia entre solicitudes síncronas y asíncronas?

sobes.tech AI

Respuesta de la IA

Las solicitudes sincrónicas bloquean el hilo de ejecución actual hasta recibir una respuesta. Las solicitudes asincrónicas no bloquean el hilo; la respuesta se procesa al finalizar la operación, generalmente mediante un mecanismo de devolución de llamada (callback), delegado o cierre.

Característica Solicitud sincrónica Solicitud asincrónica
Bloqueo del hilo No
Reacción de UI Puede bloquear la UI No bloquea la UI
Complejidad de implementación Más simple Más compleja (gestión de estado)
Uso en iOS Rara, solo para tareas cortas, no en el hilo principal Preferido, especialmente para operaciones largas

Ejemplo de solicitud asincrónica usando URLSession:

// Crear URLSessionTask
let task = URLSession.shared.dataTask(with: url) { data, response, error in
    // Este bloque se ejecuta de forma asincrónica después de completar la solicitud
    if let error = error {
        print("Error: \(error.localizedDescription)")
        return
    }

    // Procesamiento de los datos recibidos
    if let data = data {
        print("Datos recibidos, bytes: \(data.count)")
    }

    // La actualización de la UI debe realizarse en el hilo principal
    DispatchQueue.main.async {
        // Actualización de la UI
    }
}

// Iniciar la tarea
task.resume()

// El código aquí se ejecuta inmediatamente, sin esperar a que termine la solicitud
print("Solicitud enviada")