Перейти до основного вмісту
🔒 Режим прев'ю. Перші 15 уроків Foundations — безкоштовні; цей — Pro. Запусти 7-денний trial щоб відкрити редактор, AI-підказки і решту курсу. Потрібна картка, скасування в Dashboard у будь-який момент.Почати 7-денний trial →
← КурсиSenior Deep-DivesModule 8 · Async correctness patternsasyncio.Semaphore — bounded concurrency without blocking the looppredict126 / 161
+150 XP
Завдання
📝 **Завдання:** Передбачте точний результат. Семафор обмежує паралелізм на 2; 5 іменованих завдань заплановано через Gather. Кожне завдання повертає власну назву. Передбачте СПИСОК, який збирає повернення — зверніть увагу на те, який порядок виведення є порядком НАДАННЯ чи порядком ЗАВЕРШЕННЯ. 📋 Реалізуйте наведену вище функцію. Тести запускаються автоматично. 💡 **Підказка:** Перечитайте теорію, якщо ви застрягли.
Передбач вивід

Прочитай код уважно

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

Що виведе програма? Напиши тут:

💬 Обговорення

Будьте першим — поставте запитання або поділіться порадою.
Увійдіть щоб приєднатися до обговорення. Читання безкоштовне.
Завантаження обговорення…