Курс 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. Метод count() для списка
  3. Декоратор Ajax required
  4. Библиотека sh: использование команд bash в Python
  5. Обновление данных через PUT запрос
  6. Изменение IP-адреса в Python
  7. Вложенные генераторы в Python
  8. Переменные в Python
  9. Функция enumerate в Python
  10. Изменение переменной в Python: nonlocal
  11. Работа с эмодзи в Python
  12. Декодирование байтов в строку
  13. Lambda-функция в Python: использование с map() и sum()
  14. Метод setdefault() в Python
  15. Тип CodeType в Python.
  16. Работа со строками в Python
  17. Удаление дубликатов из списка
  18. Цикл for в Python
  19. Объединение словарей в Python 3.5+
  20. Проверка окончания строки с помощью str.endswith()
  21. Работа с базами данных SQLite
  22. Модуль xkcd: добавление юмора в Python
  23. Метод ior для битовых операций
  24. Оценка выражений генератора в Python
  25. Подсчет элементов с помощью Counter из collections
  26. Работа с множествами в Python
  27. Разбиение строки в Python
  28. Функции высшего порядка в Python
  29. Генераторные функции в Python
  30. Оптимизация памяти в Python
  31. Оператор (*) в Python
  32. Применение функций в Python
  33. Встроенные функции Python
  34. Фильтрация элементов с помощью islice
  35. Просмотр атрибутов и методов класса
  36. Скачать видео с YouTube
  37. Конкатенация строк в Python
  38. Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
  39. Копирование файлов с shutil()
  40. Функция __init__ в Python
  41. Метод pop() списка
  42. Генераторы данных
  43. Изучение объектов с помощью dir()
  44. Зарезервированные слова в Python
  45. Получение ID процесса

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