Курс 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"

  1. Отслеживание прогресса с tqdm
  2. Изменение списка срезами
  3. Переопределение метода xor в Python
  4. Глобальные переменные в Python
  5. Работа с географическими данными.
  6. Глубокое копирование объектов
  7. None в Python: использование и особенности
  8. Генерация QR-кодов с библиотекой qrcode
  9. Методы Python для работы с данными
  10. Замена текста с помощью sub
  11. Вычисление натуральных логарифмов в NumPy
  12. Протокол управления контекстом
  13. Фильтрация последовательности
  14. Извлечение аудио из видео
  15. Шаблоны и наследование в Flask
  16. Однострочники Python
  17. Строковое представление объектов
  18. Удаление URL-адресов в Python
  19. Оформление текста в консоли с TermColor
  20. Работа с путями в Python
  21. Модуль future Python
  22. Освоение Python
  23. Декоратор @override
  24. GitHub в Telegram: подписка на уведомления
  25. Асинхронное программирование с asyncio
  26. Объединение итераторов
  27. Удаление элементов из списка в Python
  28. Генераторы в Python
  29. Операции с матрицами в Python
  30. Метод Event.wait() в Python
  31. Скрытие вывода данных
  32. Открытие и запись файлов
  33. Объединение словарей в Python
  34. Сортировка элементов с OrderedDict
  35. Возврат значений из генератора
  36. Удаление файлов и папок в Python
  37. Управление мышью и клавиатурой с Pyautogui
  38. Функция с *args.
  39. Enum в Python
  40. Переворот списка в Python
  41. Пропуск начальных строк с помощью dropwhile()

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