kbe/src/lib/python/Doc/library/asyncio.rst
asyncio --- Asynchronous I/O.. module:: asyncio :synopsis: Asynchronous I/O.
.. sidebar:: Hello World!
::
import asyncio
async def main():
print('Hello ...')
await asyncio.sleep(1)
print('... World!')
# Python 3.7+
asyncio.run(main())
asyncio is a library to write concurrent code using the async/await syntax.
asyncio is used as a foundation for multiple Python asynchronous frameworks that provide high-performance network and web-servers, database connection libraries, distributed task queues, etc.
asyncio is often a perfect fit for IO-bound and high-level structured network code.
asyncio provides a set of high-level APIs to:
:ref:run Python coroutines <coroutine> concurrently and
have full control over their execution;
perform :ref:network IO and IPC <asyncio-streams>;
control :ref:subprocesses <asyncio-subprocess>;
distribute tasks via :ref:queues <asyncio-queues>;
:ref:synchronize <asyncio-sync> concurrent code;
Additionally, there are low-level APIs for library and framework developers to:
create and manage :ref:event loops <asyncio-event-loop>, which
provide asynchronous APIs for :meth:networking <loop.create_server>,
running :meth:subprocesses <loop.subprocess_exec>,
handling :meth:OS signals <loop.add_signal_handler>, etc;
implement efficient protocols using
:ref:transports <asyncio-transports-protocols>;
:ref:bridge <asyncio-futures> callback-based libraries and code
with async/await syntax.
.. We use the "rubric" directive here to avoid creating the "Reference" subsection in the TOC.
.. rubric:: Reference
.. toctree:: :caption: High-level APIs :maxdepth: 1
asyncio-task.rst asyncio-stream.rst asyncio-sync.rst asyncio-subprocess.rst asyncio-queue.rst asyncio-exceptions.rst
.. toctree:: :caption: Low-level APIs :maxdepth: 1
asyncio-eventloop.rst asyncio-future.rst asyncio-protocol.rst asyncio-policy.rst asyncio-platforms.rst
.. toctree:: :caption: Guides and Tutorials :maxdepth: 1
asyncio-api-index.rst asyncio-llapi-index.rst asyncio-dev.rst