43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
import asyncio
|
|
from multiprocessing import Process
|
|
from datetime import datetime
|
|
import time
|
|
import os
|
|
|
|
def log(msg):
|
|
print(f"[{datetime.now().strftime('%H:%M:%S')}] {msg}")
|
|
|
|
def tarea_pesada_cpu():
|
|
pid = os.getpid()
|
|
log(f"🔧 Proceso pesado INICIADO (PID: {pid})")
|
|
suma = sum(i * i for i in range(10**8)) # Simula carga pesada
|
|
log(f"🔧 Proceso pesado TERMINADO. Resultado: {suma} (PID: {pid})")
|
|
|
|
async def tarea_ligera_async(nombre, segundos):
|
|
log(f"⚡ {nombre} INICIADA")
|
|
await asyncio.sleep(segundos)
|
|
log(f"⚡ {nombre} TERMINADA")
|
|
|
|
async def main():
|
|
log("🎬 Iniciando tareas")
|
|
|
|
# Crear y lanzar un proceso en paralelo (cálculo pesado)
|
|
proceso = Process(target=tarea_pesada_cpu)
|
|
proceso.start()
|
|
|
|
log(f"🕵️ Proceso pesado lanzado con PID {proceso.pid}. Búscalo en el Administrador de tareas (pestaña Detalles).")
|
|
|
|
# Mientras tanto, corremos tareas asincrónicas
|
|
await asyncio.gather(
|
|
tarea_ligera_async("Tarea 1", 1),
|
|
tarea_ligera_async("Tarea 2", 2)
|
|
)
|
|
|
|
# Esperar a que el proceso termine
|
|
proceso.join()
|
|
|
|
log("🏁 Todas las tareas finalizadas")
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(main())
|