Skip to content

Commit fd3aa71

Browse files
committed
#15 - python
1 parent 761ecca commit fd3aa71

File tree

1 file changed

+52
-0
lines changed

1 file changed

+52
-0
lines changed
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
from time import sleep
2+
import time
3+
import asyncio
4+
5+
# EJERCICIO:
6+
# Utilizando tu lenguaje, crea un programa capaz de ejecutar de manera
7+
# asíncrona una función que tardará en finalizar un número concreto de
8+
# segundos parametrizables. También debes poder asignarle un nombre.
9+
# La función imprime su nombre, cuándo empieza, el tiempo que durará
10+
# su ejecución y cuando finaliza.
11+
12+
async def task(name: str, seconds: int):
13+
print(f"Iniciando {name}.")
14+
await asyncio.sleep(seconds)
15+
print(f"{name} tardara {seconds} segundos.")
16+
return f"{name} termino."
17+
18+
async def main():
19+
start = time.time()
20+
21+
answer = await asyncio.gather(
22+
task("Descarga", 6),
23+
task("Inicialización", 3),
24+
task("Petición http", 2)
25+
)
26+
27+
end = time.time()
28+
print(f"\n Respuestas: {answer}")
29+
print(f"Tiempo de ejecución del programa: {end - start} s.")
30+
31+
# asyncio.run(main())
32+
33+
# DIFICULTAD EXTRA (opcional):
34+
# Utilizando el concepto de asincronía y la función anterior, crea
35+
# el siguiente programa que ejecuta en este orden:
36+
# - Una función C que dura 3 segundos.
37+
# - Una función B que dura 2 segundos.
38+
# - Una función A que dura 1 segundo.
39+
# - Una función D que dura 1 segundo.
40+
# - Las funciones C, B y A se ejecutan en paralelo.
41+
# - La función D comienza su ejecución cuando las 3 anteriores han
42+
# finalizado.
43+
44+
async def extra():
45+
await asyncio.gather(
46+
task("Función C", 3),
47+
task("Función B", 2),
48+
task("Función A", 1)
49+
)
50+
await task("Función D", 1)
51+
52+
asyncio.run(extra())

0 commit comments

Comments
 (0)