Функциональное программирование на 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