Курс 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. Область видимости переменных
  2. Функция reduce() из модуля functools
  3. Подписка на Kaspersky Team
  4. Счетчик ссылок в Python
  5. Работа с NumPy массивами
  6. Идентификатор объекта в Python
  7. Логические операторы в Python
  8. Работа с модулем Calendar
  9. Операторы присваивания в Python
  10. kwargs в Python
  11. Python UserString — создание подклассов строк
  12. Измерение времени выполнения кода
  13. Обработка элементов в Python
  14. Подсчет элементов в Python
  15. Извлечение аудио из видео
  16. Генерация ключей RSA
  17. Dict Comprehension в Python
  18. Оптимизация создания строк
  19. Функции высшего порядка в Python
  20. Работа с рекламными данными в Pandas
  21. Пропуск строк в файле с itertools
  22. Инициализация объекта
  23. Переворот строки с использованием цикла
  24. Создание задания в Cron
  25. None в Python: использование и особенности
  26. Склеивание строк без циклов
  27. Очистка данных в Python
  28. Конкатенация строк с методом join()
  29. Множества и frozenset
  30. Нан-рефлексивность в Python
  31. Декоратор Ajax required
  32. Оператор walrus в Python
  33. Pillow: работа с изображениями
  34. Руководство по Pymorphy2
  35. Управление пакетами с pip
  36. Создание списка через цикл
  37. Явный импорт переменных
  38. Метаклассы в Python
  39. Вычисление разности множеств в Python
  40. Значения по умолчанию в Python
  41. Многопоточность в Python
  42. Подсчет элементов с помощью Counter из collections
  43. %pinfo: получение информации об объекте
  44. Python reversed() функция
  45. Принцип одной функции
  46. Основные операции с Numpy

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