Desarrollador Python: pregunta de entrevista

¿Cuándo usarías asyncio?

asyncio es adecuado para cargas de E/S con mucha concurrencia y APIs no bloqueantes; no paraleliza código Python intensivo en CPU y las llamadas bloqueantes deben salir del event loop.

Respuesta directa

Qué debe cubrir una buena respuesta

Cómo funciona

asyncio ejecuta un event loop de un solo hilo que cambia entre corrutinas en los puntos await, así que brilla cuando un servicio pasa la mayor parte del tiempo esperando sockets: miles de conexiones abiertas cuestan memoria, no hilos. Solo ayuda si cada llamada de E/S es no bloqueante; un driver de base de datos síncrono o un bucle intensivo en CPU paraliza al resto de tareas. El trabajo de CPU va a run_in_executor o a otro proceso, y las bibliotecas deben ser async nativas o estar envueltas.

Ejemplo

Un gateway que convierte una solicitud entrante en veinte llamadas HTTP a otros servicios usa asyncio.gather con un cliente HTTP asíncrono y responde en el tiempo del upstream más lento en lugar de la suma. Un generador de informes que pasa su tiempo en pandas no gana nada con asyncio y pertenece a un proceso worker.

Errores frecuentes

  • Llamar a time.sleep o a un cliente bloqueante dentro de una corrutina y congelar el loop.
  • Crear tareas sin guardar una referencia, de modo que se recolectan a medio vuelo.
  • Adoptar asyncio para un servicio limitado por CPU y añadir complejidad sin concurrencia.

Una estructura útil para responder

Responde desde tu propia experiencia.

No memorices un guion: usa solo ejemplos que puedas explicar con honestidad en preguntas posteriores.

Practica esta respuesta con MiraHint

Abre el espacio de trabajo de escritorio y ensaya una respuesta clara con tus propias palabras.

Descargar MiraHint
Preguntas de entrevista para Desarrollador Python