Курс 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. Работа с Colorama
  2. Сортировка с параметром key
  3. Оператор «is not» в Python
  4. Antigravity модуль
  5. Атрибуты объекта в Python
  6. Работа с Telegram API на Python
  7. Модуль inspect: получение информации о объектах
  8. Работа со строками в Python
  9. f-строки в формате строк
  10. Логирование с Logzero
  11. Оценка точности модели
  12. Удаление falsy-значений из списка с помощью filter
  13. Поиск индекса элемента
  14. Применение функции к элементам списка
  15. Сортировка и обратный порядок
  16. Отладка регулярных выражений в Python
  17. Преобразование генераторов в циклы
  18. Контроль точности вывода чисел
  19. Расширение операции побитового «и» в Python
  20. Использование функции enumerate()
  21. Сравнение def и lambda в Python
  22. Python Ellipsis использование
  23. Переопределение метода len
  24. Декораторы в Python
  25. ROT13 Шифр Цезаря в Python
  26. Метод ior для битовых операций
  27. Использование *args
  28. Генераторы по генератору
  29. Создание инструмента обнаружения плагиата
  30. Работа с утверждениями в Python
  31. Операции с кортежами
  32. Работа с кортежами в Python
  33. Python groupby() из itertools: работа с повторяющимися элементами
  34. Логирование с Loguru
  35. Работа с timedelta
  36. Операторы увеличения и уменьшения в Python
  37. Передача неизвестных аргументов в Python.
  38. Исключение NotImplementedError
  39. Метод __imod__ для Python
  40. Форматирование строк с f-строками
  41. Атрибуты класса и экземпляра в Python
  42. Создание функций высшего порядка
  43. Список переменных в Python
  44. Переопределение метода __lshift__
  45. Работа с каталогами в Python

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