1
+ """ /*
2
+ * EJERCICIO:
3
+ * Utilizando tu lenguaje, crea un programa capaz de ejecutar de manera
4
+ * asíncrona una función que tardará en finalizar un número concreto de
5
+ * segundos parametrizables. También debes poder asignarle un nombre.
6
+ * La función imprime su nombre, cuándo empieza, el tiempo que durará
7
+ * su ejecución y cuando finaliza.
8
+ *
9
+ * DIFICULTAD EXTRA (opcional):
10
+ * Utilizando el concepto de asincronía y la función anterior, crea
11
+ * el siguiente programa que ejecuta en este orden:
12
+ * - Una función C que dura 3 segundos.
13
+ * - Una función B que dura 2 segundos.
14
+ * - Una función A que dura 1 segundo.
15
+ * - Una función D que dura 1 segundo.
16
+ * - Las funciones C, B y A se ejecutan en paralelo.
17
+ * - La función D comienza su ejecución cuando las 3 anteriores han
18
+ * finalizado.
19
+ */ """
20
+
21
+ #EJERCICIO
22
+ import datetime
23
+ import time
24
+ import asyncio
25
+
26
+ async def task (name : str , duration : int ):
27
+
28
+ print (f"Tarea: { name } . Duración: { duration } s. Inicio: { datetime .datetime .now ()} " )
29
+ await asyncio .sleep (duration )
30
+ print (f"Tarea: { name } . Fin: { datetime .datetime .now ()} " )
31
+
32
+ asyncio .run (task ("1" , 2 ))
33
+
34
+ #DIFICULTAD EXTRA
35
+
36
+ async def async_tasks ():
37
+ await asyncio .gather (task ("C" , 3 ), task ("B" , 2 ), task ("A" , 1 ))
38
+
39
+ asyncio .run (async_tasks ())
40
+ asyncio .run (task ("D" , 1 ))
0 commit comments