Multiprocessing и threading Python: задачи на Queue, Lock и остановку
Программа с несколькими воркерами должна не только обработать данные, но и завершиться без зависания. В этой практике есть остановка пула через маркеры, ограничение очереди семафором и работа с общим словарём под блокировкой. Другие задачи соединяют процесс с потоками и убирают дубли заявок. В вопросе про Queue и join разберите порядок ожиданий: кто должен продолжить работу, чтобы другой участник вообще смог закончить.
Как заниматься
6 заданий ниже можно проходить по порядку или выбирать нужную проблему. В заданиях на код есть проверка решения; в вопросах — проверка выбранного ответа. Требования к реализации и примеры приведены на страницах заданий.
Вся практика собрана в бесплатном большом задачнике по Python для разработчиков.
Смежная практика
- Multiprocessing.Queue и join(): причина взаимной блокировки Python
Multiprocessing.Queue и join(): причина взаимной блокировки Python. Вопрос с проверкой ответа.
Практический Python для разработчиков: большой задачник - Остановка пула процессов Python: Queue, маркеры завершения и join
Остановка пула процессов Python: Queue, маркеры завершения и join. Задача с проверкой Python-кода.
Практический Python для разработчиков: большой задачник - Multiprocessing Python: ограничение очереди семафором
Multiprocessing Python: ограничение очереди семафором. Задача с проверкой Python-кода.
Практический Python для разработчиков: большой задачник - Процесс и потоки Python: двухфазная обработка матрицы
Процесс и потоки Python: двухфазная обработка матрицы. Задача с проверкой Python-кода.
Практический Python для разработчиков: большой задачник - Queue и Lock в Python: дедупликация заявок между рабочими потоками
Queue и Lock в Python: дедупликация заявок между рабочими потоками. Задача с проверкой Python-кода.
Практический Python для разработчиков: большой задачник - Threading.Lock на Python: атомарное изменение общего словаря
Threading.Lock на Python: атомарное изменение общего словаря. Задача с проверкой Python-кода.
Практический Python для разработчиков: большой задачник
