Курс 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. Распаковка аргументов в Python
  2. Метод pop() списка
  3. Библиотека Rich: форматирование текста
  4. Codecademy в Telegram
  5. Функции all и any в Python
  6. Python 3.12: переиспользование кавычек
  7. Основы Python
  8. Печать списка с помощью метода join
  9. Объединение списков с помощью zip
  10. Создание новых функций с помощью functools.partial
  11. Создание тестовых данных с Faker
  12. Метод add для класса Vector
  13. Создание обратного итератора
  14. Использование обратной косой черты в f-строках
  15. Оператор += в Python
  16. Подсчет элементов в списке с Counter
  17. Математические функции в Python
  18. Метод __irshift__ для Python
  19. Стать Python-разработчиком
  20. Метод rsub для пользовательских чисел
  21. Шаблоны и наследование в Flask
  22. Метод clear для коллекций
  23. Python defaultdict добавление ключа
  24. Генераторы в Python
  25. Структурирование именованных констант
  26. Метод __ixor__ для побитового исключающего ИЛИ
  27. Импорт с альтернативным именем
  28. Разделение строки на подстроки в Python
  29. Работа с часовыми поясами в Python.
  30. Декоратор для группы пользователей в Django
  31. Псевдонимы в Python
  32. Ускоренный импорт библиотек
  33. Хеши в Python
  34. Генерация случайных чисел в Python
  35. Декораторы в Python
  36. Область видимости переменных
  37. Расширение операции побитового «и» в Python
  38. Сортировка HTML-элементов
  39. Операции с комплексными числами
  40. Подчеркивание в REPL
  41. Работа с PosixPath() в Python
  42. Хеширование паролей с использованием salt
  43. Сортировка слиянием
  44. Flask: создание веб-приложений
  45. Оптимизация поиска в словарях
  46. Создание и инициализация объектов
  47. Объединение объектов в Python
  48. Многострочные комментарии в Python
  49. Нахождение отличий в списках
  50. Хранение данных

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