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
, runningsubprocesses
, handlingOS signals
, etc;реалізувати ефективні протоколи за допомогою transports;
bridge бібліотеки зворотного виклику та код із синтаксисом async/await.
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.9.20: (also 3.8.20) Emits audit events.
Посилання
Примітка
Вихідний код для asyncio можна знайти в Lib/asyncio/.