Курс 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. Цикл for в Python
  3. Анализ кода — Python
  4. Преобразование объекта в строку
  5. Обратный список чисел
  6. Путь к интерпретатору Python
  7. Добавление элементов в список
  8. Проверка условий в Python
  9. Преобразование генераторов в циклы
  10. Группировка элементов Python
  11. Кортеж в Python: создание, доступ, изменение
  12. Хешируемые ключи в Python
  13. Обработка ошибок в Python
  14. Создание даты из строки ISO
  15. Метод rlshift для битового сдвига
  16. Декоратор Ajax required
  17. Генератор чисел Фибоначчи
  18. Поиск уникальных элементов строкой в Python
  19. Удаление файлов и папок в Python
  20. Логирование с Logzero
  21. Округление банкира в Python
  22. Перевод текста с Python Translator
  23. Нахождение хеша для бесконечности и NaN в Python
  24. Создание виртуальной среды
  25. Применение команды break
  26. Определение наиболее частого элемента с помощью collections.Counter
  27. Оператор «not» в Python
  28. Зарезервированные слова в Python
  29. Удаление ссылок в Python
  30. Работа с модулем Calendar
  31. Лямбда-функции в Python
  32. Функция enumerate в Python
  33. Инициализация структур данных
  34. Имена объектов в Python
  35. Генерация ключей RSA
  36. Оператор == в Python
  37. Цепные операции в Python
  38. Метод split() в Python
  39. Создание списков в Python
  40. Поиск всех индексов подстроки
  41. Инверсия списка и строки в Python
  42. Преобразование списка в словарь через генератор
  43. Работа с датой и временем в Python
  44. Работа с библиотекой xkcd
  45. Упрощенный вывод данных в Python
  46. Форматирование вывода списков
  47. Локальные переменные.

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