Junior — Middle
¿Se pueden realizar varias tareas simultáneamente en un solo hilo en Python?
sobes.tech AI
Respuesta de la IA
En Python, en un solo hilo, se pueden realizar varias tareas simultáneamente utilizando programación asíncrona (asyncio) o generadores, que permiten cambiar entre tareas sin crear nuevos hilos. Sin embargo, debido a GIL (Global Interpreter Lock) en la implementación estándar de CPython, la ejecución simultánea de varios hilos que ejecutan código Python está limitada: solo un hilo se ejecuta en un momento dado.
Ejemplo con asyncio para la ejecución simultánea de tareas en un solo hilo:
import asyncio
async def tarea(nombre, retraso):
await asyncio.sleep(retraso)
print(f"Tarea {nombre} completada")
async def main():
await asyncio.gather(
tarea('A', 1),
tarea('B', 2),
tarea('C', 1.5)
)
asyncio.run(main())
De esta forma, varias tareas pueden ejecutarse "en paralelo" en un solo hilo, alternando en función del tiempo de espera, pero no simultáneamente en el sentido de la multitarea.