Курс 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. Группы исключений в Python
  2. Создание и обучение модели с Keras
  3. Рекурсия для обращения строки
  4. Структуры данных в Python
  5. Создание новых списков в Python
  6. Объединение списков с помощью zip
  7. Метод clear для коллекций
  8. Импорт классов из другого файла
  9. Различия символов в Python
  10. Нахождение разницы между списками в Python
  11. Парсинг статей с Newspaper3k
  12. Фильтрация списка чисел
  13. Обработка аргументов Python
  14. Работа с библиотекой requests
  15. Комментарии в Python
  16. Обработка исключений в Python
  17. Декодирование строк в Python
  18. Создание Radio кнопок в tkinter
  19. Оператор морж в Python 3.8
  20. Переопределение метода delitem в Python
  21. Работа с аргументами командной строки
  22. Создание словарей и множеств в Python
  23. Проектирование Singleton с метаклассом
  24. Фильтрация элементов с помощью islice
  25. Генераторы в Python
  26. Хранение данных с помощью dataclasses
  27. Настройка нарезки списков
  28. Проверка файла .py на синтаксис.
  29. Работа с геоданными с помощью geopy
  30. Python OrderedDict и fromkeys() — работа с словарями
  31. Конкатенация строк с join() в Python
  32. Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
  33. Работа с IP-адресами в Python
  34. Методы classmethod и staticmethod
  35. Удаление символов новой строки в Python.
  36. Метод enumerate() в Python
  37. Поиск уникальных элементов строкой в Python
  38. Объединение словарей в Python
  39. Работа с контекст-менеджером «with»
  40. Установка и использование howdoi
  41. Разделение строки на подстроки в Python

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