.. currentmodule:: asyncio
This page lists all high-level async/await enabled asyncio APIs.
Utilities to run asyncio programs, create Tasks, and await on multiple things with timeouts.
Examples
- :ref:`Using asyncio.gather() to run things in parallel <asyncio_example_gather>`.
- :ref:`Using asyncio.wait_for() to enforce a timeout <asyncio_example_waitfor>`.
- :ref:`Cancellation <asyncio_example_task_cancel>`.
- :ref:`Using asyncio.sleep() <asyncio_example_sleep>`.
- See also the main :ref:`Tasks documentation page <coroutine>`.
Queues should be used to distribute work amongst multiple asyncio Tasks, implement connection pools, and pub/sub patterns.
| :class:`Queue` | A FIFO queue. |
| :class:`PriorityQueue` | A priority queue. |
| :class:`LifoQueue` | A LIFO queue. |
Examples
- :ref:`Using asyncio.Queue to distribute workload between several Tasks <asyncio_example_queue_dist>`.
- See also the :ref:`Queues documentation page <asyncio-queues>`.
Utilities to spawn subprocesses and run shell commands.
await :func:`create_subprocess_exec` |
Create a subprocess. |
await :func:`create_subprocess_shell` |
Run a shell command. |
Examples
- :ref:`Executing a shell command <asyncio_example_subprocess_shell>`.
- See also the :ref:`subprocess APIs <asyncio-subprocess>` documentation.
High-level APIs to work with network IO.
await :func:`open_connection` |
Establish a TCP connection. |
await :func:`open_unix_connection` |
Establish a Unix socket connection. |
await :func:`start_server` |
Start a TCP server. |
await :func:`start_unix_server` |
Start a Unix socket server. |
| :class:`StreamReader` | High-level async/await object to receive network data. |
| :class:`StreamWriter` | High-level async/await object to send network data. |
Examples
- :ref:`Example TCP client <asyncio_example_stream>`.
- See also the :ref:`streams APIs <asyncio-streams>` documentation.
Threading-like synchronization primitives that can be used in Tasks.
| :class:`Lock` | A mutex lock. |
| :class:`Event` | An event object. |
| :class:`Condition` | A condition object. |
| :class:`Semaphore` | A semaphore. |
| :class:`BoundedSemaphore` | A bounded semaphore. |
| :class:`Barrier` | A barrier object. |
Examples
- :ref:`Using asyncio.Event <asyncio_example_sync_event>`.
- :ref:`Using asyncio.Barrier <asyncio_example_barrier>`.
- See also the documentation of asyncio :ref:`synchronization primitives <asyncio-sync>`.
Examples
- :ref:`Handling CancelledError to run code on cancellation request <asyncio_example_task_cancel>`.
- See also the full list of :ref:`asyncio-specific exceptions <asyncio-exceptions>`.
