Async/Await (Parte 5 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

¿Qué es Main Actor?

MainActor es un singleton que ejecuta código en el hilo principal. En términos más completos, es un actor cuyo executor ejecuta código en el hilo principal, también conocido como main thread o UI thread.

Podemos usarlo de dos formas:

  • Llamando el método run y pasando nuestro código en un closure:
await MainActor.run {
await execute()
}
  • La segunda forma de usar MainActor es anotando nuestro código utilizando @MainActor:
@MainActor
func execute() async {
//....
}

Otras formas de usar @MainActor

Esto asegurará que nuestro código se ejecute en el hilo principal. También podemos utilizar esta notación en clases y task closures.

De la siguiente forma indicamos que una clase completa ejecutará sus operaciones en el hilo principal:

@MainActor
class myClass {
// Aquí el código..
}

Si queremos que un método en específico no se ejecute en el hilo principal, podemos hacerlo utilizando el modificador nonisolated:

@MainActor
class myClass {
func run() { ... }
nonisolated func stop() { ... }
}

En este caso run() se ejecutará en el hilo principal, sin embargo, stop() no.

Para indicar que un task closure ejecutará sus operaciones en el hilo principal, hacemos lo siguiente:

Task { @MainActor in
// Aquí el código..
}
Async/Await (Parte 5 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