Перейти к содержимому

Функциональное программирование на Python: параллельная обработка с помощью «concurrent.futures»

Real Python

0:00 / 0:00

Функциональное программирование на Python: параллельная обработка с помощью «concurrent.futures»

44 771 просмотр · 9 л. назад
Real Python
208 тыс. подписчиков
44 771 просмотр · 9 л. назад
https://dbader.org/python-tricks ► Освойте расширенные возможности Python и пишите более быстрый и чистый код В этом руководстве по Python вы узнаете, как реализовать многопоточность и параллельное программирование в Python, используя принципы функционального программирования и модуль concurrent.futures. Мы возьмём пример набора данных, основанного на неизменяемой структуре данных, которую мы ранее преобразовали с помощью встроенной функции map. Но на этот раз мы будем обрабатывать данные параллельно, в нескольких потоках, используя модуль concurrent.futures из стандартной библиотеки Python 3. Вы шаг за шагом увидите, как распараллелить существующий фрагмент кода Python, чтобы он выполнялся гораздо быстрее и использовал все доступные ядра процессора и вычислительную мощность. Вы научитесь использовать классы ProcessPoolExecutor и ThredPoolExecutor и их параллельные реализации map, что упрощает распараллеливание большинства кода Python, написанного в функциональном стиле. Зная разницу между двумя исполнителями, доступными в модуле concurrent.futures, вы сможете распараллеливать свои функции Python в нескольких потоках и процессах. Я также кратко расскажу вам о технологии Python «Global Interpreter Lock», также известной как «GIL», и о том, как обойти её ограничения, используя правильную реализацию исполнителя. Мы снова воспользуемся нашей небольшой тестовой программой из предыдущего видео для измерения времени выполнения с помощью функции «time.time()». Это позволит нам сравнить однопоточную и многопоточную реализации одного и того же алгоритма. БЕСПЛАТНЫЙ КУРС – «5 мыслей об освоении Python» https://dbader.org/python-mastery ПОДПИШИТЕСЬ НА ЭТОТ КАНАЛ: https://dbader.org/youtube * * ► КРУЖКИ, ФУТБОЛКИ И МНОГОЕ ДРУГОЕ ДЛЯ РАЗРАБОТЧИКОВ Python: https://nerdlettering.com ► PythonistaCafe – сообщество для обучения разработчиков Python: https://www.pythonistacafe.com БЕСПЛАТНЫЕ обучающие материалы и новости по программированию на Python: » Обучающие материалы по Python: https://dbader.org » Новости Python в Твиттере:   / @dbader_org   » Еженедельные советы для разработчиков Python: https://dbader.org/newsletter » Подпишитесь на этот канал: https://dbader.org/youtube