Курс 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"
- Определение размера папок в Python
- Заказ карты Тинькофф Black
- Профилирование данных с Pandas.
- Копирование списков в Python
- Создание и инициализация объектов
- Скрытие вывода данных
- Оценка точности модели
- Блок else в Python
- Встраивание HTML в Jupyter Notebook
- Именованные срезы в Python
- Поиск шаблона в начале строки
- Лямбда-функции в цикле
- Python: изменяемые и неизменяемые коллекции
- Работа с типами данных в Python с помощью pydantic.
- Работа с файлами в Python
- Псевдонимы в Python
- Работа с комплексными числами
- Метод invert для побитового отрицания
- Порядок операций в Python
- Поиск файлов по шаблону
- Рациональные числа в Python
- Импорт модулей в Python 3.12
- Создание и операции с дробями
- Блок else в циклах Python
- Работа с OpenCV
- Создание класса очереди
- Работа с PosixPath() в Python
- Открытие и запись файлов
- Python 3.12: Псевдонимы типов
- Профилирование с cProfile
- Lambda-функция в Python: использование с map() и sum()
- Сравнение строк в Python
- Очистка данных в Python
- Сортировка списка по индексам
- Выбор редактора кода.
- Создание генераторов в Python
- Константы в модуле cmath
- Многострочные комментарии в Python
- Создание задания в Cron
- Установка и использование Logzero
- Enum в Python
- Дефолтные параметры в Python
- Многопоточность и асинхронное программирование в Python
- Метод __ilshift__ для битового сдвига влево
- Склеивание строк без циклов
- Копирование объектов в Python
- Функция eval() в Python
- Оператор @ для умножения матриц















