Курс 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. Функция zip() для объединения списков
  4. Декоратор защиты анонимных пользователей
  5. Сериализация и десериализация объектов
  6. Итерация по копии коллекции
  7. Утечки переменных цикла в Python 3.x
  8. Очистка списка от False, None, 0, «»
  9. Обратный список чисел
  10. Печать месячного календаря
  11. Транспонирование матрицы
  12. Оператор «not» в Python
  13. Преобразование Word в PDF с Spire.Doc
  14. Профилирование кода на Python
  15. Сравнение строк в Python
  16. Оператор «or» в Python
  17. Условные выражения в Python
  18. Возврат нескольких значений из функции
  19. Magic Commands — улучшение работы с Python
  20. Расчет времени выполнения программы
  21. Метод count в Python: почему count(», ») возвращает 4?
  22. Уникальность ключей в словаре
  23. Список переменных с %who
  24. Преобразование символов с помощью map
  25. Создание матрицы в Python
  26. Создание Telegram-бота на Python
  27. Создание пустых функций и классов в Python
  28. Распаковка элементов массива
  29. Нахождение хеша для бесконечности и NaN в Python
  30. Удаление файлов и папок в Python
  31. Работа с областями видимости переменных
  32. Работа с zip-архивами в Python
  33. Эффективная конкатенация строк в Python
  34. Обрезка изображения с Pillow
  35. Модуль inspect
  36. Создание словарей и множеств в Python
  37. Объединение множеств в Python
  38. Функция enumerate() в Python
  39. Управление асинхронными задачами на Python.
  40. Руководство по использованию Colorama
  41. Метод rename() для переименования файлов и каталогов
  42. Определение имен функций
  43. Участие в сообществе @selectel
  44. Установка и использование pyshorteners
  45. Модуль functools в Python
  46. Сохранение Unicode в JSON
  47. Преобразование вложенного списка

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