Async Flashcards

1
Q

¿Cual es el problema del uso de threads?

A

Si una aplicación crea muchos threads, cada uno puede tener 100kb de stack y la demanda de memoria podría ser un problema.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

¿Para qué sirve Async?

A

Sirve para intercalar tareas en un único thread o pool de threads

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

¿Qué es el overhead de memoria?

A

Uso adicional de memoria o recursos que un programa o sistema utiliza más allá de lo estrictamente necesario para realizar una tarea específica.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

¿Qué son las Funciones Asincrónicas?

A

Las funciones asincrónicas son funciones que pueden ejecutar operaciones asincrónicas y pausar su ejecución sin bloquear el hilo principal. Esto permite la concurrencia y la ejecución eficiente de tareas en paralelo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

¿Qué son los Futures?

A

Los “Futures” (futuros) son abstracciones en la programación asincrónica que representan valores que pueden estar disponibles en el futuro.

Permite que el programa siga ejecutándose sin esperar el resultado inmediato de la tarea, pero proporciona mecanismos para acceder al resultado cuando esté disponible.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Qué son las expresiones wait?

A

Las expresiones “await” (esperar) se utilizan para suspender la ejecución de una función asincrónica hasta que un “Future” se complete. Esto permite esperar la finalización de operaciones asincrónicas antes de continuar con el flujo de la ejecución.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

¿Qué son las tasks?

A

Las tareas (tasks) son unidades de trabajo en la programación asincrónica que pueden ejecutarse de manera concurrente. Son una forma de representar operaciones asincrónicas y se pueden programar para ejecutarse en paralelo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

¿Que es el tipo ‘Pin’?

A

El tipo “Pin” se utiliza en la programación asincrónica para marcar ciertos datos como “pinneables”. Esto ayuda a garantizar que los datos no se muevan en la memoria mientras se ejecutan operaciones asincrónicas, lo que es importante para garantizar la seguridad y la integridad de los datos.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Qué hace block_on?

A
  1. Inicia el future
  2. Bloquea el thread principal: mientras el future no se completa, el thread actual se bloquea y espera que la tarea async termine
  3. Devuelve el resultado producido por el future
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Qué es block_on?

A

Es una función sincrónica que espera hasta que el futuro haya terminado y devuelve su resultado.
Es decir, es un adaptador del mundo asincrónico al sincrónico.
Nunca debe usarse en una función async, porque bloquea a todo el thread. block_on conoce cuánto tiene que hacer sleep hasta hacer poll de nuevo.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Cuando usar un block_on?

A
  • Pequeños programas que no requieren el uso de un runtime completo
  • Para ejecutar una función async dentro de una función main sincrónica
  • Entornos de pruebas
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Cuando utilizar código Async?

A
  • Redes: Llamadas HTTP, TCP, WebSockets.
  • Bases de Datos: Consultas a bases de datos que puedan tardar en responder.
  • Lectura/Escritura de archivos: Operaciones de archivos grandes o intensivas en disco.
  • APIs externas: Llamadas a APIs que pueden tener tiempos de respuesta variables
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

¿Que son los Executors?

A

“Executors” son mecanismos para programar y controlar la ejecución de tareas asincrónicas. Su función es administrar y ejecutar tareas asincrónicas que devuelven futures.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly