Курс Python → Асинхронное выполнение задач в Python
Модуль asyncio в Python предоставляет возможность асинхронной работы с сетью и вводом-выводом, что позволяет эффективно управлять множеством задач без блокировки потока выполнения. Он особенно полезен при работе с сетевыми запросами, обработке больших объемов данных и других операциях, которые требуют ожидания выполнения ввода-вывода.
Давайте рассмотрим пример использования модуля asyncio для асинхронного выполнения трех задач, которые имитируют запросы к разным URL-адресам. Для начала определим асинхронную функцию fetch_data, которая будет выполняться параллельно с другими задачами. Внутри этой функции мы используем await asyncio.sleep(2) для имитации ожидания выполнения ввода-вывода в течение 2 секунд.
import asyncio
async def fetch_data(url):
await asyncio.sleep(2)
print(f"Data fetched from {url}")
async def main():
tasks = [fetch_data(url) for url in ["url1", "url2", "url3"]]
await asyncio.gather(*tasks)
asyncio.run(main())
Затем мы создаем список задач, каждая из которых вызывает функцию fetch_data с разным URL-адресом. Далее мы используем функцию asyncio.gather, чтобы запустить все задачи параллельно и дождаться их завершения. Таким образом, мы эффективно управляем выполнением нескольких задач асинхронно, не блокируя основной поток выполнения.
Использование модуля asyncio позволяет значительно ускорить выполнение программы, особенно при работе с сетевыми запросами, когда ожидание ответа от удаленного сервера может занимать значительное время. Кроме того, asyncio обеспечивает удобный механизм для организации асинхронного кода и управления множеством задач, делая программу более отзывчивой и эффективной.
Другие уроки курса "Python"
- Проблемы с dict в Python
- None в Python: использование и особенности
- Функции высшего порядка в Python
- Логирование с Logzero
- Расчет времени выполнения
- Lambda-функция в Python: использование с map() и sum()
- Метод join() для объединения строк
- Установка Git и AWS CLI
- Автоматизация с Python
- Объединение объектов в Python
- Декоратор для группы пользователей в Django
- Преобразование range в итератор
- Проверка переменных окружения в Python
- Многострочные комментарии в Python
- Оператор «is not» в Python
- Поиск кода
- Оператор морж в Python 3.8
- Хранение данных с помощью dataclasses
- Метод init в Python
- Методы работы со строками в Python
- Область видимости переменных
- Проверка типов с помощью isinstance
- Обход словаря в Python
- Оптимизация параметров в Python
- Установка random seed в Python
- Именованные срезы в Python
- Именование столбцов в Python с pandas
- Блок try-except-else
- Функция divmod() в Python
- Удаление ключа из словаря в Python
- Получение текущей даты и времени с помощью datetime
- Поиск с помощью регулярных выражений
- Генераторы и сеты в Python
- Удаление URL-адресов в Python
- Многоточие в Python
- Проверка строки на палиндром
- Сортировка в Python
- Копирование объектов в Python
- Умножение строк и списков
- Отрицательные индексы списков
- Функция findall() для поиска вхождений строки
- Изменение IP-адреса в Python
- Python reversed() функция
- Работа с IP-адресами в Python
- Объединение Python и Shell
- Работа с словарями в Python
- Работа с файлами и директориями в Python.
- Обновление данных через PUT запрос
- Счетчик ссылок в Python















