Курс 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. Возвращение нескольких значений
  3. Списки в Python: основы
  4. Принципы программирования
  5. Очистка входных данных
  6. Вложенные генераторы в Python
  7. Извлечение новостей с newspaper3k
  8. Создание .exe файла с pyinstaller
  9. inspect в Python: анализ кода
  10. Генератор данных в Keras
  11. Красивый вывод списка
  12. Переопределение метода __or__()
  13. Получение списка кортежей из словаря
  14. Создание класса очереди
  15. Статическая типизация в Python
  16. Обработка ошибок в Python
  17. Создание уникального проекта
  18. Возвращение нескольких значений через кортеж или класс
  19. Перевернуть список в Python
  20. Работа со словарями в Python
  21. Функция map() в Python
  22. Приближение чисел в Python
  23. Основы работы со списками
  24. Удаление элемента из списка в Python
  25. Сравнение объектов в Python
  26. Логирование в Python
  27. Математические функции в Python
  28. Именованные аргументы в Python
  29. Подчеркивание в REPL
  30. Работа с модулем Calendar
  31. Функции в одну строку
  32. Заказ карты Тинькофф Black
  33. Метод setitem в Python
  34. Модуль os: работа с файлами и папками
  35. Удаление символа из строки
  36. Списки: объединение, изменение
  37. Документирование функций в Python
  38. Фильтрация входных данных в Python
  39. Конкатенация строк в Python
  40. Отладка в командной строке
  41. Объединение словарей в Python
  42. Глобальные переменные в Python
  43. Применение функции к списку
  44. Обмен значений переменных в Python
  45. Python: Фильтрация списков с помощью filter()

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