Курс Python → Параллельные вычисления в Python

Модуль concurrent.futures в Python предоставляет высокоуровневый интерфейс для работы с параллельными задачами. Он позволяет создавать пулы потоков и процессов для выполнения функций асинхронно, что позволяет улучшить производительность при работе с большими объемами данных. В данном примере мы рассмотрим использование ThreadPoolExecutor для параллельного выполнения функции над элементами списка.

Для начала необходимо импортировать модуль concurrent.futures:

import concurrent.futures

Затем мы создаем пул потоков с помощью ThreadPoolExecutor:

with concurrent.futures.ThreadPoolExecutor() as executor:
    results = executor.map(square, numbers)

Здесь функция square будет применена к каждому элементу списка numbers параллельно. Результаты будут возвращены в том же порядке, в котором задачи были отправлены. Метод map позволяет передать каждый элемент из списка в функцию и получить список результатов после завершения выполнения всех задач.

Аналогично, можно использовать ProcessPoolExecutor для выполнения задач в отдельных процессах. Это особенно полезно, когда необходимо выполнить вычисления, которые могут блокировать потоки (например, взаимодействие с вводом-выводом). Пример использования ProcessPoolExecutor:

with concurrent.futures.ProcessPoolExecutor() as executor:
    results = executor.map(square, numbers)

Таким образом, модуль concurrent.futures предоставляет удобный способ реализации параллельных вычислений в Python, что помогает улучшить производительность при работе с большими объемами данных.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Класс UserDict: дополнительная функциональность
  2. Переопределение унарных операторов
  3. Работа с географическими данными в Python
  4. Измерение времени выполнения в Python
  5. Метод округления чисел
  6. Декораторы в Python
  7. Официальный канал Python в Telegram
  8. Пропуск строк в файле с itertools
  9. Метод setdefault() в Python
  10. Обработка элементов в Python
  11. Установка Python3.7 и PIP
  12. Измерение времени выполнения кода
  13. Руководство по Pymorphy2
  14. Python Поверхностное Копирование
  15. Метод __imod__ для Python
  16. Декораторы в Python
  17. Кортежи в Python: особенности и преимущества
  18. Генераторы в Python
  19. Enum в Python
  20. Создание класса очереди
  21. Работа с временем в Python
  22. Запуск внешних программ с subprocess
  23. Установка и использование howdoi
  24. Метод count() для списков
  25. Дизассемблирование Python кода
  26. Уникальные значения из списка
  27. Комментарии в Python
  28. Пространство имен в Python
  29. Измерение времени выполнения кода
  30. Лямбда-функции в defaultdict
  31. Определение объема памяти объекта
  32. Отношения подклассов в Python
  33. Списковый компрехеншен.
  34. Транспонирование 2D-массива с помощью zip
  35. Извлечение статей с newspaper3k
  36. Функции с дополнением
  37. Обход словаря в Python
  38. Удаление специальных символов
  39. Комплексные числа в Python
  40. Работа с датой и временем в Python
  41. Красивый вывод списка
  42. Игра «Угадывание чисел»
  43. Разработка игры Pong с turtle
  44. Обновление и получение данных в SQLite
  45. Функции map, filter и reduce
  46. Метод get() для словарей
  47. Генераторы в Python
  48. Модуль subprocess: запуск внешних команд

Marketello читают маркетологи из крутых компаний