Вопрос проверяет знание ключевых слов и конструкций Python для работы с асинхронным кодом, что необходимо для написания эффективных неблокирующих приложений.
Асинхронное программирование в Python построено вокруг концепции корутин — специальных функций, которые могут приостанавливать своё выполнение и возобновлять его позже. Это позволяет эффективно управлять множеством операций ввода-вывода (I/O), таких как запросы к базам данных или веб-API, без создания множества потоков или процессов.
async def fetch_data():.Для запуска асинхронного кода необходима библиотека asyncio, которая предоставляет цикл событий (event loop). Она включает функции для создания задач, ожидания нескольких операций и управления параллельным выполнением.
import asyncio
# Объявляем асинхронную функцию (корутину)
async def say_hello():
print("Hello")
await asyncio.sleep(1) # Неблокирующая задержка
print("World")
# Запускаем корутину в цикле событий
async def main():
# Создаём задачу
task = asyncio.create_task(say_hello())
await task # Ожидаем завершения задачи
asyncio.run(main()) # Запуск главной корутиныВ этом примере async def определяет корутину, await asyncio.sleep(1) приостанавливает выполнение на секунду, позволяя циклу событий переключиться на другие задачи, а asyncio.run() запускает асинхронный код.
Асинхронный подход особенно полезен в веб-серверах (например, FastAPI, aiohttp), клиентах для баз данных, парсерах и любых приложениях, где много операций ввода-вывода. Он помогает увеличить производительность, обрабатывая множество соединений в одном потоке.
Итог: Используйте async/await и библиотеку asyncio для написания неблокирующего кода в Python, когда нужно эффективно работать с медленными I/O-операциями, не перегружая систему множеством потоков.