Курс 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. Генерация QR-кодов с библиотекой qrcode
  2. Бесконечная проверка в Python
  3. Работа с YAML в Python
  4. Необязательные аргументы в Python
  5. Разница между датами
  6. Отправка POST запроса на сервер.
  7. Ограничение итераций в Python
  8. Руководство по библиотеке pydantic
  9. Работа с функцией next() в Python
  10. Отношения подклассов в Python
  11. Списки в Python
  12. Работа с collections в Python
  13. Принципы Zen of Python
  14. Чтение бинарного файла в Python.
  15. Строки в Python: апострофы и кавычки
  16. Подписка на Kaspersky Team
  17. Работа с deque в Python
  18. Перегрузка операторов в Python
  19. Создание обратного итератора
  20. Тестирование времени с Freezegun
  21. Функция eval() в Python
  22. Конкатенация строк с помощью join()
  23. Python Менеджер контекста
  24. Особенности ключей словаря в Python
  25. Метод get для словарей
  26. Автоматизация скриптов на AWS Lightsail.
  27. Метод split() в Python
  28. Поиск уникальных элементов строкой в Python
  29. Метод enumerate() в Python
  30. Метод append() для списка
  31. Генераторы списков
  32. Метод pop() списка
  33. Метод ior для битовых операций
  34. Область видимости переменных
  35. Динамическая типизация в Python
  36. Метод lt для сортировки объектов
  37. Печать месячного календаря
  38. Получение размера объекта с sys.getsizeof()
  39. Генератор списка с условием if
  40. Метод getitem для доступа к элементам последовательности
  41. Создание копии итератора
  42. Декоратор проверки активности
  43. Функции all и any в Python
  44. Оптимизация поиска в словарях
  45. Переменная с нижним подчеркиванием

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