Saltar al contenido principal
🔒 Modo vista previa. Las primeras quince lecciones de Foundations son gratis; esta es Pro. Inicia un trial de 7 días para desbloquear el editor, las pistas AI y el resto del programa. Tarjeta requerida, cancela cuando quieras en Dashboard.Iniciar trial de 7 días →
← CursosSenior Deep-DivesModule 8 · Async correctness patternsasyncio.Queue — bounded backpressure between producer and consumerpredict129 / 161
+150 XP
Tarea
📝 **Tarea:** Predecir la salida exacta de 10 líneas. La cola comienza con maxsize=3, se llena, se vacía un elemento, acepta uno más y luego se vacía por completo. El orden FIFO es la invariante central: primero en entrar, primero en salir. 📋 Implemente la función anterior. Las pruebas se ejecutan automáticamente. 💡 **Pista:** Vuelve a leer la teoría si te quedas atascado.
Predice la salida

Lee el código con atención

import asyncio


async def main() -> None:
    q: asyncio.Queue = asyncio.Queue(maxsize=3)

    await q.put("a")
    await q.put("b")
    await q.put("c")

    print(f"size after 3 puts: {q.qsize()}")
    print(f"full: {q.full()}")

    item = await q.get()
    q.task_done()
    print(f"got: {item}")
    print(f"size after 1 get: {q.qsize()}")

    await q.put("d")
    print(f"size after put d: {q.qsize()}")

    while not q.empty():
        item = await q.get()
        print(f"drained: {item}")
        q.task_done()

    print(f"final size: {q.qsize()}")
    print(f"empty: {q.empty()}")


asyncio.run(main())

¿Qué imprimirá el programa? Escribe aquí:

💬 Discusión

Sé el primero en hacer una pregunta o compartir un consejo.
Inicia sesión para unirte a la discusión. Leer es gratis.
Cargando discusión…