Курс 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. Метод radd для пользовательских чисел
  3. ChainMap избыточные ключи
  4. Docstring в Python
  5. Копирование словарей и списков в Python
  6. Использование функции product
  7. Создание пользовательской коллекции в Python
  8. Создание GUI на Tkinter
  9. Метод __complex__ в Python
  10. Переименование файлов в Python
  11. Метод __index__ в Python
  12. Отступы в Python
  13. Лямбда-функции в Python
  14. Получение частей дроби
  15. Создание итерируемых объектов
  16. Создание виртуальной среды
  17. Определение индекса элемента списка
  18. Работа с буфером обмена на Python
  19. Вычисление логарифмов в Python
  20. Ускорение выполнения кода в Python
  21. Участие в LP стейкинге Waves
  22. Множества и frozenset
  23. Обратное распространение ошибки
  24. Стать Python-разработчиком
  25. Работа с рекламными данными в Pandas
  26. Декораторы в Python
  27. Сравнение строк в Python
  28. Просмотр атрибутов и методов класса
  29. Сортировка слиянием
  30. Хранение данных
  31. Профилирование кода на Python
  32. Генераторы списков в Python
  33. Вызов функций по строке в Python.
  34. Работа с модулем glob в Python
  35. Проблемы с именами переменных
  36. Определение основы слова с showballstemmer
  37. Отрицательные индексы списков в Python
  38. Создание вкладок с TKinter
  39. Сравнение def и lambda-функций
  40. Оптимизация памяти с __slots__
  41. Переменные класса и экземпляра
  42. Именованные срезы в Python
  43. Возврат значений из генератора
  44. Метод append() для списка
  45. Работа с getopt
  46. Создание объекта времени
  47. Класс Counter() для подсчета элементов
  48. Метод pos в Python

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