Przejdź do treści głównej
🔒 Tryb podglądu. Pierwszych piętnaście lekcji Foundations jest darmowych; ta jest Pro. Rozpocznij 7-dniowy trial, aby odblokować edytor, podpowiedzi AI i resztę kursu. Wymagana karta, anulujesz w dowolnym momencie w Dashboard.Rozpocznij 7-dniowy trial →
← KursySenior Deep-DivesModule 8 · Async correctness patternsasyncio.as_completed — stream results as tasks finishpredict128 / 161
+150 XP
Zadanie
📝 **Zadanie:** Przewiduj dokładny wynik. Zaplanowano trzy zadania o nazwie powolne / szybkie / średnie z odpowiednimi opóźnieniami 30 ms / 10 ms / 20 ms. Są przesyłane w kolejności [wolno, szybko, średnio], ale as_completed wyświetla je po zakończeniu. 📋 Zaimplementuj powyższą funkcję. Testy uruchamiają się automatycznie. 💡 **Wskazówka:** Jeśli utkniesz, przeczytaj ponownie teorię.
Przewiduj wynik

Przeczytaj kod uważnie

import asyncio


async def task(name: str, delay: float) -> str:
    await asyncio.sleep(delay)
    return name


async def main() -> None:
    tasks = [task("slow", 0.03), task("fast", 0.01), task("medium", 0.02)]
    order: list[str] = []
    for coro in asyncio.as_completed(tasks):
        result = await coro
        order.append(result)
    print(order)


asyncio.run(main())

Co wypisze program? Napisz tutaj:

💬 Dyskusja

Zadaj pierwsze pytanie lub podziel się wskazówką.
Zaloguj się aby dołączyć do dyskusji. Czytanie jest darmowe.
Ładowanie dyskusji…