Курс 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. Преобразование данных в Python
  3. Метод get() в Python
  4. Разделение строк методом split()
  5. Официальный канал Python в Telegram
  6. Оператор распаковки в Python
  7. Python: цикл for и оператор присваивания
  8. Отображение HTML кода в Python
  9. Безопасный доступ к значениям словаря
  10. Создание вложенного генератора
  11. PrettyTable: создание таблицы
  12. Списки в Python
  13. Сортировка HTML-элементов
  14. Сортировка данных с лямбда-функциями
  15. Объединение словарей в Python
  16. Генераторы списков в Python
  17. Наиболее частотные элементы с помощью Counter
  18. Получение ID процесса
  19. Создание новых функций через partial
  20. Сокращение ссылок с pyshorteners
  21. Сортировка с параметром key
  22. Модуль itertools: эффективная работа с итераторами
  23. Логирование с Loguru
  24. Сериализация объектов в Python
  25. Codecademy в Telegram
  26. Имена объектов в Python
  27. Типы возвращаемых значений в Python
  28. Метод __irshift__ для побитового сдвига вправо
  29. Функция __init__ в Python
  30. Метод get для словаря
  31. Определение относительного пути
  32. Избегайте двойного подчеркивания
  33. Преобразование регистра символов
  34. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  35. Парсинг статей с Newspaper3k
  36. Управление памятью в Python
  37. Получение значений из словарей
  38. Проекты на Python
  39. Применение функции к элементам списка
  40. Закрытие файла в Python
  41. Определение основы слова с showballstemmer
  42. Сравнение строк в Python
  43. Создание детектора плагиата
  44. Принцип одной функции
  45. Многоточие в Python
  46. Удаление дубликатов из списка
  47. Назначение максимального и минимального значения переменной в Python.

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