Курс 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. Тестирование с unittest
  3. Перебор элементов списка в Python
  4. Создание GUI с Tkinter: Entry
  5. Подписка на SelectelNews в Twitter
  6. Python: Фильтрация списков с помощью filter()
  7. Создание циклической ссылки
  8. Обработка исключений с блоком else
  9. Поток данных в Python
  10. Генераторы в Python
  11. Присоединение элементов коллекции
  12. Декораторы в Python
  13. Создание словарей и множеств в Python.
  14. Обработка ошибок в Python
  15. Работа с CSV файлами
  16. Генерация UUID в Python
  17. Управление сессиями в Python
  18. Активация Matplotlib в Jupyter
  19. Импорт с альтернативным именем
  20. Работа с NumPy
  21. Создание списка через итерацию
  22. Метод __ilshift__ для битового сдвига влево
  23. Курс по дообучению ChatGPT
  24. Создание виртуальной среды
  25. Срезы в Python
  26. Регистрация на TenChat
  27. Удаление ссылок в Python
  28. Избегайте использования goto
  29. Работа с словарями в Python
  30. Объединение словарей в Python
  31. Локальные переменные.
  32. Подчеркивание в REPL
  33. Метод join для наборов
  34. Ускорение обработки данных с %autoawait
  35. Извлечение данных из JSON
  36. Получение частей дроби
  37. Добавление элемента в список.
  38. Удаление falsy-значений из списка с помощью filter
  39. Инвертирование словаря
  40. Декораторы в Python
  41. Функция divmod() в Python
  42. Правила именования переменных
  43. Разделение строки с помощью split()
  44. Форматирование данных с помощью pprint
  45. Модуль xkcd: загрузка комиксов
  46. Удаление элементов из списка в Python.
  47. Установка и использование Python-dateutil

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