Курс 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. Построение графиков в Matplotlib
  4. Округление в Python
  5. Лямбда-функции в Python
  6. Принципы Zen Python
  7. Pretty-printing JSON в Python
  8. Методы и функции в Python
  9. Поток данных в Python
  10. Метод rrshift для пользовательских объектов
  11. Работа с рекламными данными в Pandas
  12. Создание детектора плагиата
  13. Введение в Python
  14. Работа с контекстным менеджером Pool
  15. Получение текущей даты и времени
  16. Преобразование генераторов в циклы
  17. Удаление ключа из словаря в Python
  18. Списковое включение в Python
  19. Работа с массивами в Numpy
  20. Работа с deque из collections
  21. Упрощенный вывод данных в Python
  22. Изменение списка срезами
  23. Функция __init__ в Python
  24. Метод ior для битовых операций
  25. TON Smart Challenge #2: участие и подготовка
  26. Проверка элементов списка условием
  27. Основные методы NumPy
  28. Форматирование строк в Python
  29. Иерархия классов в Python
  30. Метод getitem для доступа к элементам последовательности
  31. Оптимизация памяти с __slots__
  32. Создание и операции с дробями
  33. Срез списка в Python
  34. Анализ кода — Python
  35. Создание уникального множества
  36. Работа со словарями
  37. Экспорт данных с помощью writefile
  38. Работа с файлами в Python
  39. Поиск наиболее частого элемента
  40. Определение размера папок в Python
  41. Создание GUI на Tkinter
  42. Хранение переменных в Python.
  43. Переворот списка в Python
  44. Оператор «and» в Python
  45. Создание namedtuple списком полей
  46. Функция product() в Python
  47. Явный импорт переменных
  48. Метод округления чисел

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