| .. currentmodule:: asyncio | |
| ==================== | |
| High-level API Index | |
| ==================== | |
| This page lists all high-level async/await enabled asyncio APIs. | |
| Tasks | |
| ===== | |
| Utilities to run asyncio programs, create Tasks, and | |
| await on multiple things with timeouts. | |
| .. list-table:: | |
| :widths: 50 50 | |
| :class: full-width-table | |
| * - :func:`run` | |
| - Create event loop, run a coroutine, close the loop. | |
| * - :class:`Runner` | |
| - A context manager that simplifies multiple async function calls. | |
| * - :class:`Task` | |
| - Task object. | |
| * - :class:`TaskGroup` | |
| - A context manager that holds a group of tasks. Provides | |
| a convenient and reliable way to wait for all tasks in the group to | |
| finish. | |
| * - :func:`create_task` | |
| - Start an asyncio Task, then returns it. | |
| * - :func:`current_task` | |
| - Return the current Task. | |
| * - :func:`all_tasks` | |
| - Return all tasks that are not yet finished for an event loop. | |
| * - ``await`` :func:`sleep` | |
| - Sleep for a number of seconds. | |
| * - ``await`` :func:`gather` | |
| - Schedule and wait for things concurrently. | |
| * - ``await`` :func:`wait_for` | |
| - Run with a timeout. | |
| * - ``await`` :func:`shield` | |
| - Shield from cancellation. | |
| * - ``await`` :func:`wait` | |
| - Monitor for completion. | |
| * - :func:`timeout` | |
| - Run with a timeout. Useful in cases when ``wait_for`` is not suitable. | |
| * - :func:`to_thread` | |
| - Asynchronously run a function in a separate OS thread. | |
| * - :func:`run_coroutine_threadsafe` | |
| - Schedule a coroutine from another OS thread. | |
| * - ``for in`` :func:`as_completed` | |
| - Monitor for completion with a ``for`` loop. | |
| .. rubric:: 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 | |
| ====== | |
| Queues should be used to distribute work amongst multiple asyncio Tasks, | |
| implement connection pools, and pub/sub patterns. | |
| .. list-table:: | |
| :widths: 50 50 | |
| :class: full-width-table | |
| * - :class:`Queue` | |
| - A FIFO queue. | |
| * - :class:`PriorityQueue` | |
| - A priority queue. | |
| * - :class:`LifoQueue` | |
| - A LIFO queue. | |
| .. rubric:: Examples | |
| * :ref:`Using asyncio.Queue to distribute workload between several | |
| Tasks <asyncio_example_queue_dist>`. | |
| * See also the :ref:`Queues documentation page <asyncio-queues>`. | |
| Subprocesses | |
| ============ | |
| Utilities to spawn subprocesses and run shell commands. | |
| .. list-table:: | |
| :widths: 50 50 | |
| :class: full-width-table | |
| * - ``await`` :func:`create_subprocess_exec` | |
| - Create a subprocess. | |
| * - ``await`` :func:`create_subprocess_shell` | |
| - Run a shell command. | |
| .. rubric:: Examples | |
| * :ref:`Executing a shell command <asyncio_example_subprocess_shell>`. | |
| * See also the :ref:`subprocess APIs <asyncio-subprocess>` | |
| documentation. | |
| Streams | |
| ======= | |
| High-level APIs to work with network IO. | |
| .. list-table:: | |
| :widths: 50 50 | |
| :class: full-width-table | |
| * - ``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. | |
| .. rubric:: Examples | |
| * :ref:`Example TCP client <asyncio_example_stream>`. | |
| * See also the :ref:`streams APIs <asyncio-streams>` | |
| documentation. | |
| Synchronization | |
| =============== | |
| Threading-like synchronization primitives that can be used in Tasks. | |
| .. list-table:: | |
| :widths: 50 50 | |
| :class: full-width-table | |
| * - :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. | |
| .. rubric:: 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>`. | |
| Exceptions | |
| ========== | |
| .. list-table:: | |
| :widths: 50 50 | |
| :class: full-width-table | |
| * - :exc:`asyncio.CancelledError` | |
| - Raised when a Task is cancelled. See also :meth:`Task.cancel`. | |
| * - :exc:`asyncio.BrokenBarrierError` | |
| - Raised when a Barrier is broken. See also :meth:`Barrier.wait`. | |
| .. rubric:: 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>`. |