7 puntos por darjeeling 2025-09-16 | Aún no hay comentarios. | Compartir por WhatsApp

Conclusión

En el build free-threaded de Python 3.14, asyncio eliminó el bloqueo global del intérprete (GIL) y cambió a una gestión de estado por hilo, lo que hizo posible la ejecución realmente paralela. Gracias a esto, el rendimiento escala linealmente según la cantidad de hilos, permitiendo ejecutar varios event loops en paralelo y abriendo nuevas posibilidades para aplicaciones asyncio multihilo de alto rendimiento.


Cambios principales

  • Eliminación del GIL (Global Interpreter Lock): el build free-threaded de CPython elimina el GIL para permitir que varios hilos ejecuten código Python al mismo tiempo.
  • Garantía de seguridad entre hilos: asyncio aseguró la seguridad entre hilos usando gestión de estado por hilo en lugar de estructuras de datos globales.
    • Almacenamiento de tareas: en lugar del WeakSet global, usa una lista circular doblemente enlazada por hilo, eliminando la contención por bloqueos y la sobrecarga de las referencias débiles.
    • Almacenamiento de la tarea actual: la "tarea actual" se guarda en el estado del hilo, lo que permite un acceso más rápido y sin bloqueos.

Mejora de rendimiento

  • Escalado lineal del rendimiento: según los resultados de los benchmarks, en el build free-threaded el rendimiento de asyncio mejora linealmente a medida que aumenta el número de hilos.
  • Benchmark de TCP: en comparación con un build con GIL habilitado, el build free-threaded mostró un gran aumento en el throughput.
  • Benchmark de web scraping: en un benchmark de web scraping con aiohttp, al usar varios workers en el build free-threaded, el rendimiento mejoró más del doble.

Aún no hay comentarios.

Aún no hay comentarios.