Курс 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. Установка и использование библиотеки google
  3. Работа с IP-адресами в Python
  4. Преобразование кортежа в словарь.
  5. Создание итерируемых объектов
  6. Переопределение метода __rshift__
  7. Удаление символов новой строки в Python.
  8. Логирование с Logzero
  9. Декораторы классов
  10. Создание namedtuple из словаря
  11. Форматирование строк в Python
  12. Обновление данных через PUT запрос
  13. Создание и обучение модели с Keras
  14. Слияние словарей в Python 3.9
  15. Вложенные циклы в Python
  16. Использование функции enumerate()
  17. Работа с дробями в Python
  18. Декоратор для группы пользователей в Django
  19. Метод __irshift__ для Python
  20. Представление бесконечности в Python
  21. Модуль xkcd: добавление юмора в Python
  22. Декоратор @override
  23. Работа с файлами и директориями в Python.
  24. Декораторы в Python
  25. Создание генераторов в Python
  26. Работа с Path в Python
  27. Секреты Python
  28. Декораторы в Python
  29. Метод округления чисел
  30. Преобразование PowerPoint в PDF.
  31. Руководство по использованию Colorama
  32. Добавление Progressbar в Python
  33. Метод splitlines() для разделения строк
  34. Извлечение чисел из текста
  35. Работа со строками в Python
  36. Удаление первого элемента списка
  37. Цикл while в Python
  38. Сравнение объектов в Python
  39. Установка библиотек в Python
  40. Удаление элементов из списка в Python
  41. Получение обратного списка чисел
  42. ChainMap избыточные ключи
  43. Модуль sys: основы
  44. Python Enumerate
  45. Замена переменных в Python

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