Курс 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. Цикл for с enumerate() в Python
  2. Тернарный оператор в Python
  3. Форматирование строк в Python
  4. Генерация случайных чисел в Python
  5. Список импортированных модулей в Python
  6. Функция map() и ленивая оценка
  7. Функция zip() в Python
  8. Аннотации типов в Python
  9. Создание Radio кнопок в tkinter
  10. Создание списка через итерацию
  11. Подсчет часто встречающихся элементов
  12. Объединение списков в Python.
  13. Операции с датами в Python
  14. Функция count() в Python
  15. Определение объема памяти объекта
  16. Аргументы *args и **kwargs
  17. Тип данных TypeVarTuple
  18. Методы classmethod и staticmethod
  19. Объединение коллекций в Python
  20. Генераторы в Python
  21. Измерение времени выполнения кода
  22. Присвоение и ссылки
  23. Объединение объектов в Python
  24. Методы Python для работы с данными
  25. Принципы программирования
  26. Операции с матрицами в Python
  27. Область видимости переменных
  28. Работа с f-строками 2.0
  29. Именованные кортежи в Python
  30. Оптимизация параметров в Python
  31. Хранение данных
  32. Генерация фальшивых данных с Faker
  33. Создание списков в Python
  34. Метод lt для сортировки объектов
  35. Определение имен функций
  36. Извлечение аудио из видео
  37. Функция reduce() из модуля functools
  38. Навыки Python: строки, типы данных
  39. Обязательные аргументы в Python
  40. Хеширование паролей с использованием salt
  41. Нарезка списков в Python
  42. Принципы Zen Python
  43. Проверка на истинность объектов в Python

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