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())