Курс 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. Оператор zip в Python
  3. Работа с датой и временем в Python
  4. Поиск уникальных и повторяющихся элементов
  5. Приближение чисел в Python
  6. Работа со словарями
  7. Именованные срезы в Python
  8. Flask — веб-фреймворк Python
  9. Метод __getitem__ в Python
  10. Поиск наиболее частого элемента
  11. Конкатенация строковых литералов
  12. Обучение модели с указанием эпох
  13. Создание пар из последовательностей
  14. Инвертирование словаря
  15. Оператор == в Python
  16. Функция count() в Python
  17. Функция product() в Python
  18. Импорт модулей в Python 3.12
  19. Python enumerate() функции
  20. Определение относительного пути
  21. Объединение Python и Shell
  22. Ветвление выражения в Python
  23. Добавление элемента к кортежу
  24. Тестирование с unittest
  25. Python: отличительная особенность — отступы
  26. Создание пользовательской коллекции в Python
  27. Проблема с изменяемыми аргументами
  28. EMOT преобразование эмодзи в текст
  29. Оператор Walrus в Python 3.8
  30. Печать списка с помощью метода join
  31. Преобразование списка в словарь через генератор
  32. Создание таблиц в терминале с PrettyTable
  33. Функции с необязательными аргументами
  34. Работа с файлами в Python
  35. Операции с датами в Python
  36. Вывод переменной и строки в Python
  37. Применение функции к элементам списка
  38. Область видимости переменных
  39. Лямбда-функции в Python
  40. ChainMap.new_child() — добавление нового словаря
  41. Поиск индекса элемента в списке
  42. Структура строк в Python
  43. Измерение потребления памяти при сортировке
  44. Метод __ixor__ для побитового исключающего ИЛИ
  45. Освобождение памяти в Python
  46. Непрерывная проверка в Python
  47. Стать Python-разработчиком

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