Курс 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. Вывод сложных структур данных с помощью pprint
  3. Метод округления чисел
  4. Antigravity модуль
  5. Работа со стеком в Python
  6. Применение функции map() в Python
  7. Глобальные переменные в Python
  8. Удаление элемента из списка в Python
  9. Автоматизация действий с Pyautogui
  10. Экранирование символов в Python
  11. Итераторы в Python
  12. Работа с NumPy
  13. Закрытие файла в Python
  14. Контроль точности вывода чисел
  15. Работа с часовыми поясами в Python.
  16. Функции map, filter и reduce
  17. Работа со слайсами
  18. Декодирование строк в Python
  19. Тип данных TypeVarTuple
  20. Отладка утечек памяти в Python
  21. Метод rlshift для битового сдвига
  22. Метод join() для объединения строк
  23. Генератор надежных паролей
  24. split() без разделителя
  25. Замена текста в Python
  26. Запуск внешних программ с subprocess
  27. Циклы в Python
  28. Lambda Functions in Python
  29. Повторение элементов в Python
  30. Модуль itertools: комбинации и перестановки
  31. Наиболее частотные элементы с помощью Counter
  32. Управление импортом в Python
  33. Преобразование списка в словарь через генератор
  34. Операторы увеличения и уменьшения переменной
  35. Функция all() в Python
  36. Путь к интерпретатору Python
  37. Хеширование паролей с использованием salt
  38. Передача словаря через **kwargs
  39. Подсказки типов в Python
  40. Операции со строками в Python
  41. Блок try-except-else
  42. Объединение коллекций в Python
  43. Извлечение новостей с помощью newspaper3k
  44. Python: отличительная особенность — отступы
  45. Функция sleep() в Python

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