Курс 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. Подчеркивание в REPL
  3. Преобразование строк в числа в Python
  4. Логирование с Logzero
  5. Создание коллекций из генератора
  6. Удаление элементов во время итерации
  7. Импорт с альтернативным именем
  8. Работа с байтовыми строками в Python
  9. Замена символов в Python
  10. Декораторы с аргументами
  11. Раздувающийся словарь в Python
  12. Проверка версии Python
  13. Открытие и запись файлов
  14. Работа с itertools
  15. Преобразование объекта в строку
  16. Модуль itertools: эффективная работа с итераторами
  17. Метод index() в Python
  18. Хэш-функции и метод цепочек
  19. Импорт классов из другого файла
  20. Сортировка HTML по CSS-селектору
  21. Разделение строки на подстроки в Python
  22. Ключевое слово global в Python
  23. Создание Radio кнопок в tkinter
  24. Конвертация изображений в PDF
  25. Метод ior для битовых операций
  26. Статическая типизация в Python
  27. Поиск наиболее частого элемента
  28. Форматирование строк с % в Python
  29. Вычисление разности множеств в Python
  30. Поиск индексов в списке
  31. Метод сравнения объектов в Python
  32. Разработка игры Pong с turtle
  33. Отделение звука от видео
  34. Экспорт внешнего файла с помощью writefile
  35. Декораторы в Python
  36. Форматирование строк в Python
  37. Метод rename() для переименования файлов и каталогов
  38. Поиск индекса элемента
  39. Проверка элементов списка условием
  40. Глубокое копирование объектов
  41. Работа с итераторами в Python
  42. Параллельные вычисления в Python
  43. Оператор break в Python
  44. Получение срезов итераторов
  45. Избегайте изменяемых аргументов
  46. Работа со строками в Python
  47. Обработка исключений в Python
  48. Python 3.12: переиспользование кавычек

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