El build free-threaded, publicado como intérprete opcional desde CPython 3.13, elimina el GIL para que varios hilos puedan ejecutar bytecode de Python en paralelo. Tu código pasa a ser realmente concurrente, lo que significa que las condiciones de carrera que el GIL tapaba ahora son reales. Necesitas locks explícitos alrededor del estado mutable compartido, y tienes que comprobar que todas las extensiones en C de las que dependes lo soporten.
Por qué lo preguntan los entrevistadores
Esto separa a quien lee las notas de versión de quien dejó de aprender en Python 3.8. El entrevistador comprueba si sabes que el GIL se está quitando como opción y no borrando de raíz, si entiendes el coste que supone para el ecosistema de extensiones nativas, y si eres consciente de que el código que parecía seguro con el lock antiguo puede empezar a corromper estado compartido en cuanto los hilos corren de verdad a la vez.
Cómo estructurar tu respuesta
- Deja claro que es un build opcional, no el que viene por defecto.
- Explica qué paralelismo desbloquea.
- Nombra la nueva carga de corrección sobre el estado compartido.
- Menciona la cuestión de compatibilidad de las extensiones.
Ejemplo de respuesta
El free threading llegó como build experimental en 3.13 y desde entonces ha ido madurando, y la clave es que es un intérprete aparte que eliges usar, no algo que cambió en silencio para todo el mundo. Sin el lock, dos hilos pueden ejecutar bytecode en dos núcleos a la vez, así que un pool de workers con carga de CPU por fin escala sin pagar el arranque de procesos ni el coste de serializar. Lo que cambias a cambio es corrección. Con el build antiguo, mucho código descuidado se libraba de actualizar diccionarios sin sincronizar porque rara vez caía un límite de bytecode en el sitio equivocado. Ahora eso son carreras de datos de verdad y necesitas un Lock o una cola. Lo probé en un job de scoring que repartía trabajo entre cuatro procesos, y con hilos obtuve un rendimiento parecido con mucha menos memoria, porque el modelo se quedaba cargado una vez en lugar de cuatro. Lo que lo bloqueó para producción fueron las extensiones. Todo lo que tiene una capa en C hay que recompilarlo contra la ABI free threaded, así que antes de llevarlo a producción auditaría el árbol de dependencias y miraría qué han publicado los mantenedores.
¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.
Mira cómo funcionaPreguntas de seguimiento que puedes esperar
- ¿Cómo encontrarías una carrera de datos en código Python?
- ¿Cuál es el coste de rendimiento de ese build con un solo hilo?
- ¿Lo llevarías hoy a producción?
Más preguntas para Desarrollador Python
Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.
Predecir mis preguntas