Preskoči na glavni sadržaj
🔒 Način pregleda. Prvih petnaest Foundations lekcija je besplatno; ova je Pro. Pokrenite 7-dnevni trial da otključate editor, AI savjete i ostatak programa. Kartica obavezna, otkažite bilo kada u Dashboard.Pokreni 7-dnevni trial →
← KolegijiSenior Deep-DivesModule 8 · Async correctness patternsasyncio.Queue — bounded backpressure between producer and consumerpredict129 / 161
+150 XP
Zadatak
📝 **Zadatak:** Predvidite točan izlaz od 10 redaka. Red čekanja počinje s maxsize=3, popuni se, isprazni se jedna stavka, prihvati još jednu, a zatim se potpuno isprazni. FIFO poredak je središnja invarijanta — prvi ušao, prvi izašao. 📋 Implementirajte gornju funkciju. Testovi se pokreću automatski. 💡 **Savjet:** Ponovno pročitajte teoriju ako zapnete.
Predvidi izlaz

Pažljivo pročitaj kod

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())

Što će program ispisati? Napiši ovdje:

💬 Rasprava

Budi prvi — postavi pitanje ili podijeli savjet.
Prijavi se kako bi se pridružio raspravi. Čitanje je besplatno.
Učitavanje rasprave…