asyncio – Асинхронный ввод-вывод¶asyncio – Asynchronous I/O
asyncio – это библиотека для написания конкурентного кода с использованием синтаксиса async/await.
asyncio используется как основа для нескольких асинхронных фреймворков Python, которые предоставляют высокопроизводительные сетевые и веб-серверы, библиотеки подключения к базам данных, распределённые очереди задач и т.д.
asyncio часто отлично подходит для задач, связанных с вводом-выводом, и высокоуровневого структурированного сетевого кода.
asyncio предоставляет набор высокоуровневых API для:
запуска корутин Python конкурентно и полного контроля над их выполнением;
выполнения сетевого ввода-вывода и IPC;
управления подпроцессами;
распределения задач через очереди;
синхронизации конкурентного кода;
Кроме того, существуют низкоуровневые API для разработчиков библиотек и фреймворков, чтобы:
создания и управления циклами событий, которые предоставляют асинхронные API для сети, запуска подпроцессов, обработки сигналов ОС и т.д.;
реализации эффективных протоколов с помощью транспортов;
связывания библиотек и кода на основе колбэков с синтаксисом async/await.
Доступность: not Emscripten, not WASI.
Этот модуль не работает или недоступен на платформах WebAssembly
wasm32-emscripten и wasm32-wasi. См.
платформы 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'
Возбуждает событие аудита cpython.run_stdin без аргументов.
Изменено в версии 3.11.10: (также 3.10.15, 3.9.20 и 3.8.20) Вызывает события аудита.
Справочные материалы
API высокого уровня
API низкого уровня
Руководства и учебные пособия
Примечание
Исходный код asyncio можно найти в Lib/asyncio/.