Курс 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. Проблемы с dict в Python
  2. None в Python: использование и особенности
  3. Функции высшего порядка в Python
  4. Логирование с Logzero
  5. Расчет времени выполнения
  6. Lambda-функция в Python: использование с map() и sum()
  7. Метод join() для объединения строк
  8. Установка Git и AWS CLI
  9. Автоматизация с Python
  10. Объединение объектов в Python
  11. Декоратор для группы пользователей в Django
  12. Преобразование range в итератор
  13. Проверка переменных окружения в Python
  14. Многострочные комментарии в Python
  15. Оператор «is not» в Python
  16. Поиск кода
  17. Оператор морж в Python 3.8
  18. Хранение данных с помощью dataclasses
  19. Метод init в Python
  20. Методы работы со строками в Python
  21. Область видимости переменных
  22. Проверка типов с помощью isinstance
  23. Обход словаря в Python
  24. Оптимизация параметров в Python
  25. Установка random seed в Python
  26. Именованные срезы в Python
  27. Именование столбцов в Python с pandas
  28. Блок try-except-else
  29. Функция divmod() в Python
  30. Удаление ключа из словаря в Python
  31. Получение текущей даты и времени с помощью datetime
  32. Поиск с помощью регулярных выражений
  33. Генераторы и сеты в Python
  34. Удаление URL-адресов в Python
  35. Многоточие в Python
  36. Проверка строки на палиндром
  37. Сортировка в Python
  38. Копирование объектов в Python
  39. Умножение строк и списков
  40. Отрицательные индексы списков
  41. Функция findall() для поиска вхождений строки
  42. Изменение IP-адреса в Python
  43. Python reversed() функция
  44. Работа с IP-адресами в Python
  45. Объединение Python и Shell
  46. Работа с словарями в Python
  47. Работа с файлами и директориями в Python.
  48. Обновление данных через PUT запрос
  49. Счетчик ссылок в Python

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