Курс 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. Выбор редактора кода.
  3. Оператор распаковки в Python
  4. Замена текста с re.sub()
  5. Генерация строк с .join()
  6. Непрерывная проверка в Python
  7. Условные выражения в Python
  8. Конкатенация строк с методом join()
  9. Структурирование данных с Pydantic
  10. Нахождение разницы между списками в Python
  11. Копирование объектов в Python
  12. Асинхронное выполнение задач в процессах
  13. Функции высшего порядка в Python
  14. Удаление символа из строки
  15. Операции с числами в Python
  16. Python Поверхностное Копирование
  17. Подписка на каналы разработчиков
  18. split() — разделение строки
  19. Срезы в Python
  20. Установка и обучение ChatterBot
  21. Операторы объединения в Python 3.9
  22. Импорт модулей в Python 3.12
  23. Автоматизация действий с Pyautogui
  24. Преобразование Excel в PDF с Spire.XLS
  25. Обезопасьте ввод данных
  26. Декораторы классов
  27. Работа с WindowsPath()
  28. Объединение коллекций в Python
  29. Избегайте пустого списка
  30. Автоматизация скриптов на AWS Lightsail.
  31. Логирование с Logzero
  32. Умножение строк и списков
  33. Списковое включение в Python
  34. Очистка данных с Pandas
  35. Создание матрицы в Python
  36. Python 3.12: Псевдонимы типов
  37. Генерация фальшивых данных с Faker
  38. Оптимизация интернирования строк
  39. Подсчет элементов в списке с Counter
  40. Установка random seed в Python
  41. Модуль sys: основы
  42. Разбиение строки в Python
  43. Декоратор проверки активности
  44. Сравнение def и lambda функций в Python
  45. Создание комплексных чисел
  46. Преобразование списка в словарь через генератор
  47. Создание класса очереди
  48. Работа с NumPy

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