Курс 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. Встраивание HTML в Jupyter Notebook
  2. enumerate() в Python для работы с индексами
  3. Функция с *args.
  4. Форматирование данных с pprint
  5. Запуск внешних программ с subprocess
  6. Метод get для словарей
  7. Работа с SQLite в Python
  8. Проверка индексов коллекции
  9. Открытие и редактирование скриптов Python
  10. Переопределение метода __or__()
  11. Модуль itertools: эффективная работа с итераторами
  12. Модуль future Python
  13. Вакансии в Nebius
  14. Извлечение аудио из видео
  15. Работа с timedelta
  16. Измерение потребления памяти при сортировке
  17. Переворот списка в Python
  18. Локальные переменные.
  19. Работа с библиотекой requests
  20. Замена переменных в Python
  21. Разработка игры Pong с turtle
  22. Делегирование в Python
  23. Объединение, распаковка и деструктуризация
  24. Замена текста с re.sub()
  25. Функция findall() для поиска вхождений строки
  26. Обход элементов в Python
  27. Работа с модулем Calendar
  28. Создание новых списков
  29. Замена символов в Python
  30. Обработка элементов в Python
  31. Исправление ошибки NameError
  32. Генераторные функции в Python
  33. Комментарии в Python
  34. Перевод двоичного кода в целое число
  35. Добавление элемента в список.
  36. Работа с срезами в Numpy
  37. Оператор распаковки в Python
  38. Счетчик ссылок в Python
  39. Сравнение def и lambda функций в Python
  40. Проверка надежности пароля на Python
  41. Создание генераторов
  42. Объединение кортежей в Python
  43. Работа с CSV в Python
  44. Конкатенация строк с join() в Python
  45. Метод count в Python: почему count(», ») возвращает 4?

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