asyncio
— Асинхронный ввод-вывод¶
asyncio - это библиотека для написания параллельного кода с использованием синтаксиса async/await.
asyncio используется в качестве основы для нескольких асинхронных фреймворков Python, которые обеспечивают высокопроизводительные сетевые и веб-серверы, библиотеки подключений к базам данных, распределенные очереди задач и т.д.
asyncio часто идеально подходит для ввода-вывода и высокоуровневого структурированного сетевого кода.
asyncio предоставляет набор высокоуровневых API-интерфейсов для:
run Python coroutines одновременно и иметь полный контроль над их выполнением;
выполнить network IO and IPC;
управление subprocesses;
распределяйте задачи с помощью queues;
synchronize параллельный код;
Кроме того, существуют низкоуровневые API-интерфейсы для разработчиков библиотек и фреймворков, позволяющие:
создавайте и управляйте event loops, которые предоставляют асинхронные API для networking, запуска subprocesses, обработки OS signals и т.д;
реализуйте эффективные протоколы, используя transports;
bridge библиотеки на основе обратного вызова и код с синтаксисом async/await.
Availability: это не Emscripten, это был не я.
Этот модуль не работает или недоступен на платформах WebAssembly wasm32-emscripten
и wasm32-wasi
. Дополнительную информацию смотрите в разделе Платформы веб-сборки.
асинхронное ВОСПРОИЗВЕДЕНИЕ
Вы можете поэкспериментировать с 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'
Выдает auditing event cpython.run_stdin
без каких-либо аргументов.
Изменено в версии 3.11.10: (также 3.10.15, 3.9.20 и 3.8.20) Генерирует события аудита.
Ссылка
Высокоуровневые API-интерфейсы
Низкоуровневые API-интерфейсы
Руководства и туториалы
Примечание
Исходный код для asyncio можно найти в Lib/asyncio/.