asyncio
— Asynchronous I/O¶
asyncio — це бібліотека для написання паралельного коду за допомогою синтаксису async/await.
asyncio використовується як основа для багатьох асинхронних фреймворків Python, які забезпечують високопродуктивні мережеві та веб-сервери, бібліотеки підключення до бази даних, розподілені черги завдань тощо.
asyncio часто ідеально підходить для високорівневого структурованого мережевого коду.
asyncio пропонує набір високорівневого API для:
запускати співпрограми Python одночасно та мати повний контроль над їх виконанням;
виконувати мережевий IO та IPC;
керування підпроцесами;
розподіляти завдання через черги;
синхронізувати конкурентний код;
Також існують низькорівневі API для розробників бібліотек і фреймворків, щоб:
create and manage event loops, which provide asynchronous APIs for networking, running subprocesses, handling OS signals, etc;
реалізувати ефективні протоколи за допомогою transports;
bridge бібліотеки зворотного виклику та код із синтаксисом async/await.
Availability: not Emscripten, not WASI.
This module does not work or is not available on WebAssembly platforms
wasm32-emscripten
and wasm32-wasi
. See
WebAssembly platforms for more information.
asyncio REPL
You can experiment with an asyncio
concurrent context in the 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.12.5: (also 3.11.10, 3.10.15, 3.9.20, and 3.8.20) Emits audit events.
Посилання
Примітка
Вихідний код для asyncio можна знайти в Lib/asyncio/.