Курс 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. Функция eval() в Python
  3. Вычисление натуральных логарифмов в NumPy
  4. Передача неизвестных аргументов в Python.
  5. Python Enumerate
  6. Хеширование паролей с использованием salt
  7. Оператор объединения словарей
  8. Использование двоеточия в Python
  9. Форматирование строк с помощью f-строк
  10. Шаблоны и наследование в Flask
  11. Функция findall() для поиска вхождений строки
  12. Метод rrshift для пользовательских объектов
  13. Отрицательные индексы списков в Python
  14. Модуль future Python
  15. Работа с географическими данными.
  16. Получение локальных переменных в Python
  17. Работа с JSON в Python
  18. Логические операторы в Python
  19. Mad Libs Generator
  20. Распаковка значений в Python
  21. Фильтрация списка чисел
  22. Обновление шаблона base.html
  23. Метод rlshift для битового сдвига
  24. Мощь вложенных функций в Python
  25. Векторизация в Python с NumPy.
  26. Проверка условий в Python
  27. Магические методы в Python
  28. Создание графики с черепахой
  29. Округление в Python
  30. Подсчет частоты элементов с Counter
  31. Добавление цвета в консоли
  32. Установка и использование pyshorteners
  33. Построение графиков в терминале с bashplotlib
  34. UserString в Python
  35. Определение объема памяти объекта
  36. Изменение элемента списка
  37. Работа с кортежами в Python
  38. Расчет времени выполнения программы
  39. Раздувающийся словарь в Python
  40. Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
  41. Работа с аргументами командной строки
  42. Транспонирование 2D-массива с помощью zip
  43. Импорт с альтернативным именем
  44. Работа с атрибутом dict
  45. Поиск индекса элемента
  46. Преобразование данных в Python

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