Sobes.tech
Junior

¿En qué consiste la diferencia entre asincronía y multitarea?

sobes.tech AI

Respuesta de la IA

La asincronía es una técnica que permite continuar con la ejecución del hilo principal mientras una operación se realiza en segundo plano, esperando su finalización sin bloquear.

La multitarea es la capacidad de un programa para ejecutar varias partes de su trabajo (hilos) simultáneamente o de manera pseudo-simultánea (en procesadores de un solo núcleo).

Diferencia clave:

  • Multitarea — forma de paralelizar la ejecución de tareas usando varios hilos.
  • Asincronía — forma de manejar operaciones que requieren espera (por ejemplo, I/O, solicitudes de red), sin bloquear el hilo principal.

La asincronía puede implementarse tanto usando multitarea (por ejemplo, a través de GCD o OperationQueue) como sin ella (por ejemplo, mediante ciclos de eventos o corrutinas).

Ejemplo de uso de GCD para trabajo asincrónico en otro hilo:

// Enviamos un bloque de código para su ejecución en una cola de fondo
DispatchQueue.global(qos: .background).async {
    // Aquí se realiza una operación larga en un hilo de fondo
    let result = performBackgroundOperation() 

    // Volvemos al hilo principal para actualizar la interfaz
    DispatchQueue.main.async {
        updateUI(with: result)
    }
}

func performBackgroundOperation() -> String {
    // Simulación de trabajo largo
    sleep(2) 
    return "Operación completada"
}

func updateUI(with result: String) {
    // Actualización de elementos de la interfaz en el hilo principal
    print(result)
}