You've already forked Curso-lenguaje-python
Add library exercises
This commit is contained in:
@@ -0,0 +1,91 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Ejemplo práctico para ver la diferencia entre ejecutar un programa con hilos, con procesos y
|
||||
sin ninguno de los anteriores.
|
||||
|
||||
"""
|
||||
|
||||
import time
|
||||
import requests
|
||||
import threading
|
||||
import multiprocessing
|
||||
|
||||
dominios = {
|
||||
"https://google.com",
|
||||
"https://xvideos.com",
|
||||
"https://wikimedia.org",
|
||||
"https://yahoo.com"
|
||||
}
|
||||
|
||||
# Ejecución sin hilos ni procesos separados
|
||||
start_time = time.time()
|
||||
|
||||
for url in dominios:
|
||||
|
||||
r = requests.get(url)
|
||||
print(
|
||||
f"\n[+] URL {url}: {len(r.content)} bytes"
|
||||
)
|
||||
|
||||
|
||||
end_time = time.time()
|
||||
|
||||
print(
|
||||
f"\n[i] Tiempo de ejecución SIN hilos: {end_time - start_time} segundos\n"
|
||||
)
|
||||
|
||||
|
||||
def realizar_peticion(url):
|
||||
|
||||
r = requests.get(url)
|
||||
print(
|
||||
f"\n[+] URL {url}: {len(r.content)} bytes"
|
||||
)
|
||||
|
||||
|
||||
# Ejecución con hilos
|
||||
start_time = time.time()
|
||||
|
||||
hilos = []
|
||||
for url in dominios:
|
||||
|
||||
hilo = threading.Thread(
|
||||
target=realizar_peticion,
|
||||
args=(url,)
|
||||
)
|
||||
hilo.start()
|
||||
hilos.append(hilo)
|
||||
|
||||
for hilo in hilos:
|
||||
|
||||
hilo.join()
|
||||
|
||||
end_time = time.time()
|
||||
|
||||
print(
|
||||
f"\n[i] Tiempo de ejecución CON hilos: {end_time - start_time} segundos\n"
|
||||
)
|
||||
|
||||
|
||||
# Ejecución con procesos
|
||||
start_time = time.time()
|
||||
|
||||
procesos = []
|
||||
for url in dominios:
|
||||
|
||||
proceso = multiprocessing.Process(
|
||||
target=realizar_peticion,
|
||||
args=(url,)
|
||||
)
|
||||
proceso.start()
|
||||
procesos.append(proceso)
|
||||
|
||||
for proceso in procesos:
|
||||
|
||||
proceso.join()
|
||||
|
||||
end_time = time.time()
|
||||
|
||||
print(
|
||||
f"\n[i] Tiempo de ejecución CON procesos: {end_time - start_time} segundos\n"
|
||||
)
|
||||
Reference in New Issue
Block a user