Курс 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. Defaultdict в Python
  2. Запрос пароля с помощью getpass
  3. Шаблоны и наследование в Flask
  4. Работа с файлами в Python
  5. Вывод переменной и строки в Python
  6. Хранение переменных в словаре.
  7. Сравнение объектов в Python
  8. Псевдонимы в Python
  9. Создание уникального проекта
  10. Работа с массивами в Python
  11. Модуль inspect: получение информации о объектах
  12. Библиотека sh: удобные команды терминала
  13. Циклы в Python
  14. Подсчет элементов в Python
  15. Показ всплывающих окон Tkinter
  16. Разбиение строки в Python
  17. Декоратор Ajax required
  18. Хранение переменных в Python.
  19. Установка библиотек в Python
  20. Избегайте двойного подчеркивания
  21. Метод gt в Python
  22. Анализ текста на русском языке с помощью Pymystem3
  23. Особенности запятых в Python
  24. Аннотации типов в Python
  25. Список и кортеж в Python
  26. Преобразование символов в нижний регистр
  27. Множества и frozenset
  28. Декоратор защиты анонимных пользователей
  29. Работа с изображениями Pillow
  30. Метод join() для объединения элементов строки
  31. Оператор assert в Python
  32. Операция += для списков
  33. Лямбда-функции в Python
  34. Получение локальных переменных в Python
  35. Динамические маршруты во Flask
  36. Работа с контекстными менеджерами
  37. Работа с дробями в Python
  38. Установка и использование модуля Wikipedia
  39. Сравнение строк в Python
  40. Исключение NotImplementedError
  41. Работа с файлами в Python
  42. Различия символов в Python
  43. Участие в сообществе @selectel
  44. Замена текста в Python
  45. Метод rmatmul для пользовательских матриц
  46. Функция zip() для объединения списков
  47. Конструктор в Python

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