Курс 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. Преобразование чисел в восьмеричную строку
  2. Преобразование Excel в PDF с Spire.XLS
  3. Декораторы в Python
  4. Изменяемые и неизменяемые объекты
  5. Операторы присваивания в Python
  6. Подсчет элементов в Python
  7. Декораторы с @wraps
  8. Метод округления чисел
  9. Метод __ilshift__ для битового сдвига влево
  10. Работа с defaultdictами в Python
  11. Инициализация переменных
  12. Работа с множествами в Python
  13. Генерация UUID в Python
  14. Преобразование списка в словарь через генератор
  15. Переменная с нижним подчеркиванием
  16. Метод getitem для доступа к элементам последовательности
  17. Подсчет элементов в Python
  18. Работа с YAML в Python: PyYAML.
  19. Применение команды break
  20. Список переменных в Python
  21. Декоратор Property в Python
  22. Генерация случайных чисел Python
  23. Методы сравнения множеств
  24. Изменение списка срезами
  25. Управление User-Agent в Python
  26. Очистка данных с помощью pandas
  27. Мониторинг памяти с Pympler
  28. Python: Фильтрация списков с помощью filter()
  29. Асинхронное выполнение задач в процессах
  30. Официальный канал Python в Telegram
  31. Отладка в командной строке
  32. Измерение времени выполнения кода
  33. Чтение и запись TOML-конфигов
  34. Обновление шаблона base.html
  35. Объединение Python и Shell
  36. Таймер обратного отсчета
  37. Локальные переменные.
  38. Названия переменных
  39. Сортировка и разворот списка
  40. Изменение логики работы с временем
  41. Управление памятью в numpy.
  42. Логирование с Logzero
  43. Операции с кортежами
  44. Объединение кортежей в Python

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