Ugrás a fő tartalomra
🔒 Előnézet mód. Az első tizenöt Foundations lecke ingyenes; ez Pro. Indíts 7 napos trial-t, hogy feloldd a szerkesztőt, az AI tippeket és a tananyag többi részét. Kártya szükséges, bármikor lemondhatod a Dashboard-ban.7 napos trial indítása →
← KurzusokSenior Deep-DivesModule 1 · Concurrency internals · Recapasyncio.Szemafor az ellennyomáshozpredict26 / 161
+100 XP
Feladat
📝 **Kérdés:** Jósolja meg a pontos kimenetet. Öt feladat (A-E) mind megpróbálja beírni az \`async with sem\` kifejezést, ahol \`sem = Semaphore(2)\`. \`Gather\` ütemezi őket sorrendben. Mi a csúcsszám a repülés közben? Milyen sorrendben szereznek és engednek el? 📋 Válassza ki a megfelelő választ. 💡 **Tipp:** Ha nem biztos benne, olvassa el újra a fenti elméletet.
Találd ki a kimenetet

Olvasd el a kódot figyelmesen

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

Mit ír ki a program? Írd ide:

💬 Beszélgetés

Légy az első — tegyél fel kérdést vagy oszd meg egy tippet.
Jelentkezz be hogy csatlakozz a beszélgetéshez. Az olvasás ingyenes.
Beszélgetés betöltése…