Курс 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. Показ всплывающих окон Tkinter
  2. Применение команды break
  3. Функция enumerate() — Python
  4. Преобразование текста в речь с Python
  5. Модуль functools в Python
  6. Список импортированных модулей в Python
  7. Изменение регистра данных
  8. JSON в Python: модуль, dump, dumps, load
  9. Синхронизация доступа к ресурсам
  10. Работа с библиотекой requests
  11. Модуль future Python
  12. Функция reduce() в Python
  13. Область видимости переменных
  14. Генератор чисел Фибоначчи
  15. Обработка данных в Python
  16. Проверка дублей в списке.
  17. Оптимизация создания строк
  18. Построение графиков в Matplotlib
  19. Работа с контекстными переменными
  20. Повторение и перенос строки
  21. Шаблоны Flask: условия и циклы
  22. Форматирование строк в Python
  23. Управление асинхронными задачами с помощью Semaphore
  24. Проверка типа данных
  25. Defaultdict в Python
  26. Создание комплексных чисел
  27. Работа со стеком в Python
  28. Склеивание строк без циклов
  29. Модуль pprint
  30. Многопоточность в Python
  31. Генераторы списков
  32. Создание циклической ссылки
  33. Lambda-функция в Python: использование с map() и sum()
  34. Запуск внешнего кода в Jupyter
  35. Передача неизвестных аргументов в Python.
  36. Создание и инициализация объектов
  37. Подсказки типов в Python
  38. Функция product() из itertools
  39. Дизассемблирование Python кода
  40. Транспонирование 2D-массива с помощью zip
  41. Создание множества в Python
  42. Определение объема памяти объекта
  43. Фильтрация данных в Python.
  44. Оператор морж в Python 3.8
  45. Progress с библиотекой tqdm
  46. Получение атрибутов и методов класса

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