Урок 23: Асинхронное программирование в Python

Асинхронное программирование в Python

Краткое введение

Асинхронное программирование позволяет выполнять множество задач параллельно, повышая эффективность и производительность программ. В Python для асинхронного программирования используется модуль asyncio, который предоставляет мощные инструменты для создания асинхронных приложений.

Теоретическая часть

Модуль asyncio

Asyncio — это библиотека для написания асинхронного кода с использованием синтаксиса async/await. Она используется для создания асинхронных версий IO-операций, обеспечивая неблокирующее выполнение кода.

Async/await

Ключевые слова async и await используются для определения асинхронных функций и ожидания их выполнения. Async определяет функцию как асинхронную, а await используется для приостановки выполнения функции до завершения другой асинхронной операции.

Примеры кода

# Пример асинхронной функции
import asyncio

async def hello_world():
 print("Hello")
 await asyncio.sleep(1)
 print("World")

asyncio.run(hello_world())

Практические задания

1. Создайте асинхронную функцию для скачивания веб-страницы и извлечения определенной информации из нее.
2. Разработайте асинхронный сценарий, который одновременно отправляет несколько HTTP-запросов к различным API и обрабатывает их ответы как только они становятся доступны.

Решение задания

# Пример асинхронной функции для скачивания веб-страницы
import asyncio
import aiohttp

async def fetch_page(url):
 async with aiohttp.ClientSession() as session:
 async with session.get(url) as response:
 return await response.text()

# Пример асинхронного сценария для HTTP-запросов
async def fetch_all(urls):
 tasks = []
 async with aiohttp.ClientSession() as session:
 for url in urls:
 task = asyncio.create_task(session.get(url))
 tasks.append(task)
 responses = await asyncio.gather(*tasks)
 return [await response.text() for response in responses]

urls = ['https://example.com', 'https://example.org']
asyncio.run(fetch_all(urls))

© 2024 realschule.ru

Категория: Python с нуля | Добавил: Admin (07.03.2024)
Просмотров: 143 | Рейтинг: 1.0/1
Всего комментариев: 0
Имя *:
Email *:
Код *: