Курс 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. Объединение списков в Python.
  5. Метод is_absolute() для PurePath
  6. Работа с байтовыми строками в Python
  7. Управление памятью в numpy.
  8. Лямбда-функции в цикле
  9. Проверка условий в Python
  10. Функции в Python: создание и вызов
  11. Удаление ссылок в Python
  12. Контроль точности вывода чисел
  13. Объявление переменных в Python
  14. Генераторы и сеты в Python
  15. Установка и использование модуля «howdoi»
  16. Непрерывная проверка в Python
  17. Генераторы списков
  18. Преобразование генераторов в циклы
  19. Методы HTTP запросов в Flask
  20. Модуль subprocess: запуск внешних команд
  21. Оптимизация сравнения в Python
  22. Реализация операции -= для пользовательского класса
  23. Функция product() из itertools
  24. Просмотр файла в Jupyter Noteboo
  25. Изменение IP-адреса в Python
  26. Переопределение метода xor в Python
  27. Стать Python-разработчиком
  28. Оператор объединения словарей
  29. Генераторные функции в Python
  30. Форматирование строк в Python
  31. Namedtuple в Python
  32. Работа с модулем random
  33. Метод init в Python
  34. Список методов и атрибутов
  35. Переопределение метода divmod
  36. Создание вкладок с TKinter
  37. Преобразование букв в нижний регистр
  38. Вычисление натуральных логарифмов в NumPy
  39. Работа с изображениями PIL
  40. Python: возвращение нескольких значений
  41. Методы split() и join() — Python строк.
  42. Установка Python — Простое руководство
  43. Создание виртуальной среды
  44. SciPy: широкий функционал для математических операций
  45. Использование подчеркивания в REPL
  46. Поиск индекса элемента в списке
  47. Функция print() — вывод информации
  48. Сортировка с помощью key

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