Prejsť na hlavný obsah
🔒 Režim náhľadu. Prvých pätnásť lekcií Foundations je zadarmo; táto je Pro. Spustite 7-dňový trial pre odomknutie editora, AI nápovied a zvyšku kurzu. Karta vyžadovaná, zrušte kedykoľvek v Dashboard.Spustiť 7-dňový trial →
← KurzySenior Deep-DivesModule 1 · Concurrency internals · Recapasyncio.Semafor na protitlakpredict26 / 161
+100 XP
Úloha
📝 **Otázka:** Predpovedajte presný výstup. Päť úloh (A-E) sa pokúša zadať \`async so sem\`, kde \`sem = Semafor(2)\`. Sú naplánované \`zhromaždiť\` v poradí. Aký je maximálny počet počas letu? V akom poradí získavajú a uvoľňujú? 📋 Vyberte správnu odpoveď. 💡 **Tip:** Ak si nie ste istí, prečítajte si znova teóriu vyššie.
Predpovedz výstup

Prečítaj kód pozorne

import asyncio

state = {"in_flight": 0, "peak": 0}


async def task(name, sem):
    async with sem:
        state["in_flight"] += 1
        state["peak"] = max(state["peak"], state["in_flight"])
        print(f"acquire:{name}:inflight={state['in_flight']}")
        await asyncio.sleep(0)
        await asyncio.sleep(0)
        state["in_flight"] -= 1
        print(f"release:{name}")


async def main():
    sem = asyncio.Semaphore(2)
    await asyncio.gather(*[task(c, sem) for c in "ABCDE"])
    print(f"peak:{state['peak']}")


asyncio.run(main())

Čo program vypíše? Napíš sem:

💬 Diskusia

Buď prvý — polož otázku alebo sa podeľ o tip.
Prihlás sa aby si sa zapojil do diskusie. Čítanie je zadarmo.
Načítava sa diskusia…