Repaso
English
PythonIntermedioPY-41

Explica el GIL y cómo acelerarías un trabajo CPU-bound en Python.

Respuesta

  • GIL: un lock en CPython; solo un thread ejecuta código Python a la vez. Protege los contadores de referencias y el estado del intérprete.
  • Se libera durante el I/O bloqueante y en muchas extensiones en C (NumPy, hashlib, zlib).
  • Trabajo I/O-bound: los threads o asyncio funcionan bien.
  • Opciones para CPU-bound: ProcessPoolExecutor / multiprocessing; vectorizar con NumPy/pandas; mover el bucle crítico a Cython/Rust/C; build free-threaded (3.13+) donde las librerías lo soporten.
  • Trade-offs: arranque de procesos, coste de pickling, duplicación de memoria. Perfila primero (cProfile, py-spy).

Términos clave

Practica esta pregunta en Repaso