Курс 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. Многострочные комментарии в Python
  3. Оптимизация строк в Python
  4. Поиск всех индексов подстроки
  5. Генераторы в Python
  6. Работа с Telegram API на Python
  7. Лямбда-функции в Python
  8. Поиск индекса элемента
  9. Установка и использование howdoi
  10. Метод bool() в Python
  11. Определение объема памяти объекта
  12. Создание класса очереди
  13. Псевдонимы в Python
  14. Counter() — подсчет элементов
  15. Курс по дообучению ChatGPT
  16. Создание пользовательской коллекции в Python
  17. Работа с парами ключ-значение
  18. Тестирование времени с Freezegun
  19. Декораторы с аргументами
  20. Переопределение метода divmod
  21. Сортировка слиянием
  22. Генерация QR-кодов с Python
  23. Python: изменяемые и неизменяемые коллекции
  24. Удаление дубликатов из списка
  25. Введение в Python
  26. Методы в Python
  27. Срез списка в Python
  28. Создание графики с черепахой
  29. Преобразование кортежа в словарь.
  30. Очистка вывода в Python
  31. Переименование файлов в Python
  32. ChainMap.new_child() — добавление нового словаря
  33. Генерация случайных данных в NumPy
  34. Аннотации типов в Python
  35. Создание новых списков в Python
  36. Установка и использование pyshorteners
  37. Переопределение унарных операторов
  38. Карта бомбоубежищ в Москве и Питере
  39. Преобразование в float
  40. Скрытие вывода данных
  41. Преобразование чисел в восьмеричную строку
  42. Ключевое слово global в Python
  43. Анонимные функции в Python
  44. Метод count() для списков
  45. Цикл for в Python

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