Async/Await (Parte 1 de 11)1

Paralelización con async let

2

Calcular tiempo de ejecución de un código

3

¿Qué es un Task?

4

¿Qué es un Actor y para que se utilizan?

5

¿Qué es Main Actor?

6

Modificador task

7

Cómo utilizar Task Group

8

Trabajando con iteraciones asíncronas usando AsyncSequence

9

Mezclando código síncrono y asíncrono usando CheckedContinuation

10

Optimiza la eficiencia de tu código concurrente con DiscardingTaskGroup

11

Explorando Task-local

Paralelización con async let

Una de las formas de ofrecer una mejor experiencia de usuario es haciendo uso de paralelización para hacer nuestras apps más responsivas.

Usando async let podemos ejecutar varias operaciones asíncronas al mismo tiempo.

Cómo usar async let

Imagina que tienes dos funciones asíncronas una llamada getInt() que retorna un entero luego de hacer unos cálculos y otra llamada getString() que también es asíncrona pero retorna una cadena de texto. Para hacer un requerimiento necesitas imprimir los resultados de cada una de estas dos funciones.

Una primera opción podría ser ejecutar estas dos funciones de la siguiente forma:

let number = await getInt()
let text = await getString()
print("\(number) \(text)")

Esto funcionaría, pero para ejecutar la segunda función debemos esperar a que la primera retorne, por lo que no estamos haciendo un uso eficiente de los recursos de paralelización.

Si queremos llamarlas las dos haciendo uso de paralelización, tendríamos que usar el siguiente código:

async let numberOperation = getInt()
async let textOperation = getString()
let (number, text) = await (numberOperation, textOperation)
print("\(number) \(text)")

Con esto guardaremos en las variables number y text igual que el código anterior, sin embargo, gracias a async let las funciones se ejecutarán en paralelo pudiendo así terminar las operaciones en menos tiempo.

Cosas a tomar en cuenta

  • Si alguna de las funciones asíncronas puede emitir excepciones, debemos usar try o unas de sus variaciones try?, try!.
  • async let es muy conveniente para pocas cantidades de tareas, si tenemos muchas tareas es mejor considerar usar TaskGroup.
  • Las funciones que hagan uso de async let deben ser independientes y el orden en que se ejecuten no debe importar.
Async/Await (Parte 1 de 11)1

Paralelización con async let

2

Calcular tiempo de ejecución de un código

3

¿Qué es un Task?

4

¿Qué es un Actor y para que se utilizan?

5

¿Qué es Main Actor?

6

Modificador task

7

Cómo utilizar Task Group

8

Trabajando con iteraciones asíncronas usando AsyncSequence

9

Mezclando código síncrono y asíncrono usando CheckedContinuation

10

Optimiza la eficiencia de tu código concurrente con DiscardingTaskGroup

11

Explorando Task-local

Comparte este artículo

Subscríbete a nuestro Newsletter

Mantente al día en el mundo de las aplicaciones móviles con nuestro blog especializado.

Artículos semanales

Todas las semanas artículos nuevos sobre el mundo de las aplicaciones móviles.

No spam

No te enviaremos spam, solo contenido de calidad. Puedes darte de baja cuando quieras.

Contenido de calidad

Nada de contenido generado de manera automática usando ChatGPT.

Recomendaciones

Tips indispensables sobre mejores prácticas y metodologías.

© 2024 AsyncLearn