asyncio — Асинхронный ввод-вывод
asyncio — это библиотека для написания параллельного кода с использованием синтаксиса async/await.
asyncio служит основой для множества асинхронных фреймворков Python, обеспечивающих высокопроизводительные сетевые и веб-серверы, библиотеки для подключения к базам данных, распределённые очереди задач и т. д.
asyncio часто идеально подходит для кода, ограниченного операциями ввода-вывода, а также для высокоуровневого структурированного сетевого кода.
asyncio предоставляет набор высокоуровневых API для следующих задач:
- параллельного запуска корутин Python с полным контролем над их выполнением;
- выполнения сетевого ввода-вывода и IPC;
- управления подпроцессами;
- распределения задач с помощью очередей;
- синхронизации параллельного кода;
Кроме того, существуют низкоуровневые API для разработчиков библиотек и фреймворков, предназначенные для следующих задач:
- создания и управления циклами событий, предоставляющими асинхронные API для работы с сетью, запуска подпроцессов, обработки сигналов ОС и т. д.;
- реализации эффективных протоколов с использованием транспортов;
- связи библиотек и кода на основе обратных вызовов с синтаксисом async/await.
Доступность: недоступно в Emscripten и WASI.
Этот модуль не работает или недоступен на платформах WebAssembly wasm32-emscripten и wasm32-wasi. Подробнее см. в разделе Платформы WebAssembly.
REPL asyncio
В REPL можно поэкспериментировать с параллельным контекстом asyncio:
$ 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/.
© 2001–2024 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.11/library/asyncio.html