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.Semaphore — bounded concurrency without blocking the looppredict126 / 161
+150 XP
Zadatak
📝 **Zadatak:** Predvidite točan rezultat. Semafor ograničava istovremenost na 2; 5 imenovanih zadataka raspoređeno je putem skupa. Svaki zadatak vraća svoje ime. Predvidite POPIS koji se vraća - obratite pozornost na to je li redoslijed u izlazu redoslijed PODNOŠENJA ili redoslijed ZAVRŠETKA. 📋 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 fetch(sem: asyncio.Semaphore, name: str) -> str:
    async with sem:
        # Stand-in for a real I/O call.
        await asyncio.sleep(0.001)
        return name


async def main() -> list[str]:
    sem = asyncio.Semaphore(2)
    names = ["a", "b", "c", "d", "e"]
    results = await asyncio.gather(*[fetch(sem, n) for n in names])
    return results


print(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…