Asyncio Queue, Lock и Semaphore: задачи на очереди и воркеров

Очередь позволяет отделить поступление работы от её обработки, но добавляет собственные ошибки: забытый task_done, потерянный воркер или бесконечное ожидание join. В этих задачах вы соберёте ограниченный конвейер, объедините парные события и организуете запасную очередь при перегрузке. Есть упражнения на вытеснение старой заявки и восстановление пула после сбоя. Начните с вопроса о гонке в однопоточном asyncio, чтобы не путать отсутствие потоков с отсутствием конкуренции.

Как заниматься

10 заданий ниже можно проходить по порядку или выбирать нужную проблему. В заданиях на код есть проверка решения; в вопросах — проверка выбранного ответа. Требования к реализации и примеры приведены на страницах заданий.

Вся практика собрана в бесплатном большом задачнике по Python для разработчиков.

Смежная практика