asyncio – Асинхронный ввод/вывод
asyncio – это библиотека для написания конкурентного кода с использованием синтаксиса async/await.
asyncio используется как основа для множества асинхронных фреймворков Python, которые обеспечивают высокопроизводительные сетевые и веб-серверы, библиотеки для подключения к базам данных, распределенные очереди задач и т.д.
asyncio часто идеально подходит для IO-зависимого и высокоуровневого структурированного сетевого кода.
Смотрите также
- Концептуальный обзор asyncio
Объяснение основ asyncio.
asyncio предоставляет набор высокоуровневых API для:
запускать корутины Python конкурентно и иметь полный контроль над их выполнением;
выполнять сетевой ввод-вывод и IPC;
управлять подпроцессами;
распределять задачи через очереди;
синхронизировать конкурентный код;
Кроме того, существуют низкоуровневые API для разработчиков библиотек и фреймворков:
создавать и управлять циклами событий, которые предоставляют асинхронные API для сетевого взаимодействия, запуска подпроцессов, обработки сигналов ОС и т.д.;
реализовывать эффективные протоколы с помощью транспортов;
связывать библиотеки и код, основанные на колбэках, с синтаксисом async/await.
Доступность: не WASI.
Этот модуль не работает или недоступен на WebAssembly. См. платформы WebAssembly для получения дополнительной информации.
asyncio REPL
Вы можете экспериментировать с asyncio конкурентным контекстом в REPL:
$ python -m asyncio
asyncio REPL ...
Use "await" directly instead of "asyncio.run()".
Type "help", "copyright", "credits" or "license" for more information.
>>> import asyncio
>>> await asyncio.sleep(10, result='hello')
'hello'
Этот REPL обеспечивает ограниченную совместимость с PYTHON_BASIC_REPL.
Рекомендуется использовать REPL по умолчанию
для полной функциональности и последних возможностей.
Вызывает событие аудита cpython.run_stdin без аргументов.
Изменено в версии 3.12.5: (также 3.11.10, 3.10.15, 3.9.20 и 3.8.20) Вызывает события аудита.
Изменено в версии 3.13: Использует PyREPL, если возможно, в этом случае PYTHONSTARTUP также
выполняется. Вызывает события аудита.
Справочник
Высокоуровневые API
Низкоуровневые API
Руководства и учебные пособия
Примечание
Исходный код asyncio можно найти в Lib/asyncio/.