Курс 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. Таймер обратного отсчета
  2. Логические значения в Python
  3. Поиск с помощью регулярных выражений
  4. Определение относительного пути
  5. Метод lt для сортировки объектов
  6. Атрибуты класса и экземпляра
  7. Основы работы со строками в Python
  8. Метод get() для словарей
  9. Подсказки при вводе данных в Python
  10. Оператор Walrus в Python
  11. Избегайте изменяемых аргументов
  12. Работа с YAML в Python
  13. Обработка элементов в Python
  14. Фильтрация элементов с помощью islice
  15. Оператор «is not» в Python
  16. Цикл for в Python
  17. Множества и frozenset
  18. Инверсия списка и строки
  19. Экспорт данных с помощью writefile
  20. Mad Libs Generator
  21. Отправка HTTP-запросов в Python
  22. Метод count в Python: почему count(», ») возвращает 4?
  23. Срез списка в Python
  24. Печать в одной строке
  25. Работа с timedelta в Python
  26. Атрибуты объекта в Python
  27. Импорт модулей в Python 3.12
  28. Метод matmul для умножения матриц
  29. Проверка на истинность объектов в Python
  30. Удаление ресурса в Python
  31. Преобразование типов данных в set comprehension
  32. Избегайте использования goto
  33. Проверка кортежей.
  34. Инверсия списка и строки в Python
  35. Списки в Python: основы
  36. Хранение данных с помощью dataclasses
  37. Использование модуля __future__
  38. Применение функции к каждому элементу списка
  39. Подсчет элементов в Python
  40. Справка по импортированным модулям
  41. Экспорт данных в файл.
  42. Выбор редактора кода.

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