Курс 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. UserList в Python: Описание и примеры использования
  4. Генераторы по генератору
  5. Поиск email
  6. Объединение списков с помощью zip
  7. Профилирование кода на Python
  8. Управление контекстом выполнения кода
  9. Показ всплывающих окон Tkinter
  10. Объединение словарей в Python
  11. Работа с изображениями PIL
  12. Реализация операции -= для пользовательского класса
  13. Конкатенация строк с методом join()
  14. Проверка элементов списка условием
  15. Метод pos в Python
  16. Объединение словарей в Python
  17. Удаление эмодзи с помощью pandas
  18. Генераторы данных
  19. Получение пути к текущему скрипту с помощью os
  20. Ошибка NotImplemented в Python
  21. Применение функции map() с лямбда-функциями
  22. Преобразование чисел в слова
  23. Отрицательные индексы списков в Python
  24. Переопределение метода __rshift__
  25. Объединение множеств в Python
  26. Создание копии списка в Python
  27. Вложенные циклы в Python
  28. Анализ кода — Python
  29. Оптимизация памяти с __slots__
  30. Проверка условий в Python
  31. Кортеж в Python: создание, доступ, изменение
  32. Работа с утверждениями в Python
  33. Перевод текста с Python Translator
  34. Перехват исключений в Python
  35. Асинхронное выполнение задач в Python
  36. Открытие и запись файлов
  37. Изменяемые и неизменяемые объекты
  38. Оператор «and» в Python
  39. Разработка игры Pong с turtle
  40. Сортировка элементов в Python
  41. Математические функции в Python
  42. Библиотека wikipedia для Python
  43. Обучение модели с указанием эпох
  44. Удаление первого элемента списка
  45. Отладчик pdb: начало работы
  46. Создание функций с произвольным количеством аргументов

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