Курс 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"
- Форматирование чисел в Python
- Подчеркивание в REPL
- Преобразование строк в числа в Python
- Логирование с Logzero
- Создание коллекций из генератора
- Удаление элементов во время итерации
- Импорт с альтернативным именем
- Работа с байтовыми строками в Python
- Замена символов в Python
- Декораторы с аргументами
- Раздувающийся словарь в Python
- Проверка версии Python
- Открытие и запись файлов
- Работа с itertools
- Преобразование объекта в строку
- Модуль itertools: эффективная работа с итераторами
- Метод index() в Python
- Хэш-функции и метод цепочек
- Импорт классов из другого файла
- Сортировка HTML по CSS-селектору
- Разделение строки на подстроки в Python
- Ключевое слово global в Python
- Создание Radio кнопок в tkinter
- Конвертация изображений в PDF
- Метод ior для битовых операций
- Статическая типизация в Python
- Поиск наиболее частого элемента
- Форматирование строк с % в Python
- Вычисление разности множеств в Python
- Поиск индексов в списке
- Метод сравнения объектов в Python
- Разработка игры Pong с turtle
- Отделение звука от видео
- Экспорт внешнего файла с помощью writefile
- Декораторы в Python
- Форматирование строк в Python
- Метод rename() для переименования файлов и каталогов
- Поиск индекса элемента
- Проверка элементов списка условием
- Глубокое копирование объектов
- Работа с итераторами в Python
- Параллельные вычисления в Python
- Оператор break в Python
- Получение срезов итераторов
- Избегайте изменяемых аргументов
- Работа со строками в Python
- Обработка исключений в Python
- Python 3.12: переиспользование кавычек















