17db96d56Sopenharmony_ci.. currentmodule:: asyncio
27db96d56Sopenharmony_ci
37db96d56Sopenharmony_ci
47db96d56Sopenharmony_ci====================
57db96d56Sopenharmony_ciHigh-level API Index
67db96d56Sopenharmony_ci====================
77db96d56Sopenharmony_ci
87db96d56Sopenharmony_ciThis page lists all high-level async/await enabled asyncio APIs.
97db96d56Sopenharmony_ci
107db96d56Sopenharmony_ci
117db96d56Sopenharmony_ciTasks
127db96d56Sopenharmony_ci=====
137db96d56Sopenharmony_ci
147db96d56Sopenharmony_ciUtilities to run asyncio programs, create Tasks, and
157db96d56Sopenharmony_ciawait on multiple things with timeouts.
167db96d56Sopenharmony_ci
177db96d56Sopenharmony_ci.. list-table::
187db96d56Sopenharmony_ci    :widths: 50 50
197db96d56Sopenharmony_ci    :class: full-width-table
207db96d56Sopenharmony_ci
217db96d56Sopenharmony_ci    * - :func:`run`
227db96d56Sopenharmony_ci      - Create event loop, run a coroutine, close the loop.
237db96d56Sopenharmony_ci
247db96d56Sopenharmony_ci    * - :class:`Runner`
257db96d56Sopenharmony_ci      - A context manager that simplifies multiple async function calls.
267db96d56Sopenharmony_ci
277db96d56Sopenharmony_ci    * - :class:`Task`
287db96d56Sopenharmony_ci      - Task object.
297db96d56Sopenharmony_ci
307db96d56Sopenharmony_ci    * - :class:`TaskGroup`
317db96d56Sopenharmony_ci      - A context manager that holds a group of tasks. Provides
327db96d56Sopenharmony_ci        a convenient and reliable way to wait for all tasks in the group to
337db96d56Sopenharmony_ci        finish.
347db96d56Sopenharmony_ci
357db96d56Sopenharmony_ci    * - :func:`create_task`
367db96d56Sopenharmony_ci      - Start an asyncio Task, then returns it.
377db96d56Sopenharmony_ci
387db96d56Sopenharmony_ci    * - :func:`current_task`
397db96d56Sopenharmony_ci      - Return the current Task.
407db96d56Sopenharmony_ci
417db96d56Sopenharmony_ci    * - :func:`all_tasks`
427db96d56Sopenharmony_ci      - Return all tasks that are not yet finished for an event loop.
437db96d56Sopenharmony_ci
447db96d56Sopenharmony_ci    * - ``await`` :func:`sleep`
457db96d56Sopenharmony_ci      - Sleep for a number of seconds.
467db96d56Sopenharmony_ci
477db96d56Sopenharmony_ci    * - ``await`` :func:`gather`
487db96d56Sopenharmony_ci      - Schedule and wait for things concurrently.
497db96d56Sopenharmony_ci
507db96d56Sopenharmony_ci    * - ``await`` :func:`wait_for`
517db96d56Sopenharmony_ci      - Run with a timeout.
527db96d56Sopenharmony_ci
537db96d56Sopenharmony_ci    * - ``await`` :func:`shield`
547db96d56Sopenharmony_ci      - Shield from cancellation.
557db96d56Sopenharmony_ci
567db96d56Sopenharmony_ci    * - ``await`` :func:`wait`
577db96d56Sopenharmony_ci      - Monitor for completion.
587db96d56Sopenharmony_ci
597db96d56Sopenharmony_ci    * - :func:`timeout`
607db96d56Sopenharmony_ci      - Run with a timeout. Useful in cases when ``wait_for`` is not suitable.
617db96d56Sopenharmony_ci
627db96d56Sopenharmony_ci    * - :func:`to_thread`
637db96d56Sopenharmony_ci      - Asynchronously run a function in a separate OS thread.
647db96d56Sopenharmony_ci
657db96d56Sopenharmony_ci    * - :func:`run_coroutine_threadsafe`
667db96d56Sopenharmony_ci      - Schedule a coroutine from another OS thread.
677db96d56Sopenharmony_ci
687db96d56Sopenharmony_ci    * - ``for in`` :func:`as_completed`
697db96d56Sopenharmony_ci      - Monitor for completion with a ``for`` loop.
707db96d56Sopenharmony_ci
717db96d56Sopenharmony_ci
727db96d56Sopenharmony_ci.. rubric:: Examples
737db96d56Sopenharmony_ci
747db96d56Sopenharmony_ci* :ref:`Using asyncio.gather() to run things in parallel
757db96d56Sopenharmony_ci  <asyncio_example_gather>`.
767db96d56Sopenharmony_ci
777db96d56Sopenharmony_ci* :ref:`Using asyncio.wait_for() to enforce a timeout
787db96d56Sopenharmony_ci  <asyncio_example_waitfor>`.
797db96d56Sopenharmony_ci
807db96d56Sopenharmony_ci* :ref:`Cancellation <asyncio_example_task_cancel>`.
817db96d56Sopenharmony_ci
827db96d56Sopenharmony_ci* :ref:`Using asyncio.sleep() <asyncio_example_sleep>`.
837db96d56Sopenharmony_ci
847db96d56Sopenharmony_ci* See also the main :ref:`Tasks documentation page <coroutine>`.
857db96d56Sopenharmony_ci
867db96d56Sopenharmony_ci
877db96d56Sopenharmony_ciQueues
887db96d56Sopenharmony_ci======
897db96d56Sopenharmony_ci
907db96d56Sopenharmony_ciQueues should be used to distribute work amongst multiple asyncio Tasks,
917db96d56Sopenharmony_ciimplement connection pools, and pub/sub patterns.
927db96d56Sopenharmony_ci
937db96d56Sopenharmony_ci
947db96d56Sopenharmony_ci.. list-table::
957db96d56Sopenharmony_ci    :widths: 50 50
967db96d56Sopenharmony_ci    :class: full-width-table
977db96d56Sopenharmony_ci
987db96d56Sopenharmony_ci    * - :class:`Queue`
997db96d56Sopenharmony_ci      - A FIFO queue.
1007db96d56Sopenharmony_ci
1017db96d56Sopenharmony_ci    * - :class:`PriorityQueue`
1027db96d56Sopenharmony_ci      - A priority queue.
1037db96d56Sopenharmony_ci
1047db96d56Sopenharmony_ci    * - :class:`LifoQueue`
1057db96d56Sopenharmony_ci      - A LIFO queue.
1067db96d56Sopenharmony_ci
1077db96d56Sopenharmony_ci
1087db96d56Sopenharmony_ci.. rubric:: Examples
1097db96d56Sopenharmony_ci
1107db96d56Sopenharmony_ci* :ref:`Using asyncio.Queue to distribute workload between several
1117db96d56Sopenharmony_ci  Tasks <asyncio_example_queue_dist>`.
1127db96d56Sopenharmony_ci
1137db96d56Sopenharmony_ci* See also the :ref:`Queues documentation page <asyncio-queues>`.
1147db96d56Sopenharmony_ci
1157db96d56Sopenharmony_ci
1167db96d56Sopenharmony_ciSubprocesses
1177db96d56Sopenharmony_ci============
1187db96d56Sopenharmony_ci
1197db96d56Sopenharmony_ciUtilities to spawn subprocesses and run shell commands.
1207db96d56Sopenharmony_ci
1217db96d56Sopenharmony_ci.. list-table::
1227db96d56Sopenharmony_ci    :widths: 50 50
1237db96d56Sopenharmony_ci    :class: full-width-table
1247db96d56Sopenharmony_ci
1257db96d56Sopenharmony_ci    * - ``await`` :func:`create_subprocess_exec`
1267db96d56Sopenharmony_ci      - Create a subprocess.
1277db96d56Sopenharmony_ci
1287db96d56Sopenharmony_ci    * - ``await`` :func:`create_subprocess_shell`
1297db96d56Sopenharmony_ci      - Run a shell command.
1307db96d56Sopenharmony_ci
1317db96d56Sopenharmony_ci
1327db96d56Sopenharmony_ci.. rubric:: Examples
1337db96d56Sopenharmony_ci
1347db96d56Sopenharmony_ci* :ref:`Executing a shell command <asyncio_example_subprocess_shell>`.
1357db96d56Sopenharmony_ci
1367db96d56Sopenharmony_ci* See also the :ref:`subprocess APIs <asyncio-subprocess>`
1377db96d56Sopenharmony_ci  documentation.
1387db96d56Sopenharmony_ci
1397db96d56Sopenharmony_ci
1407db96d56Sopenharmony_ciStreams
1417db96d56Sopenharmony_ci=======
1427db96d56Sopenharmony_ci
1437db96d56Sopenharmony_ciHigh-level APIs to work with network IO.
1447db96d56Sopenharmony_ci
1457db96d56Sopenharmony_ci.. list-table::
1467db96d56Sopenharmony_ci    :widths: 50 50
1477db96d56Sopenharmony_ci    :class: full-width-table
1487db96d56Sopenharmony_ci
1497db96d56Sopenharmony_ci    * - ``await`` :func:`open_connection`
1507db96d56Sopenharmony_ci      -  Establish a TCP connection.
1517db96d56Sopenharmony_ci
1527db96d56Sopenharmony_ci    * - ``await`` :func:`open_unix_connection`
1537db96d56Sopenharmony_ci      -  Establish a Unix socket connection.
1547db96d56Sopenharmony_ci
1557db96d56Sopenharmony_ci    * - ``await`` :func:`start_server`
1567db96d56Sopenharmony_ci      - Start a TCP server.
1577db96d56Sopenharmony_ci
1587db96d56Sopenharmony_ci    * - ``await`` :func:`start_unix_server`
1597db96d56Sopenharmony_ci      - Start a Unix socket server.
1607db96d56Sopenharmony_ci
1617db96d56Sopenharmony_ci    * - :class:`StreamReader`
1627db96d56Sopenharmony_ci      - High-level async/await object to receive network data.
1637db96d56Sopenharmony_ci
1647db96d56Sopenharmony_ci    * - :class:`StreamWriter`
1657db96d56Sopenharmony_ci      - High-level async/await object to send network data.
1667db96d56Sopenharmony_ci
1677db96d56Sopenharmony_ci
1687db96d56Sopenharmony_ci.. rubric:: Examples
1697db96d56Sopenharmony_ci
1707db96d56Sopenharmony_ci* :ref:`Example TCP client <asyncio_example_stream>`.
1717db96d56Sopenharmony_ci
1727db96d56Sopenharmony_ci* See also the :ref:`streams APIs <asyncio-streams>`
1737db96d56Sopenharmony_ci  documentation.
1747db96d56Sopenharmony_ci
1757db96d56Sopenharmony_ci
1767db96d56Sopenharmony_ciSynchronization
1777db96d56Sopenharmony_ci===============
1787db96d56Sopenharmony_ci
1797db96d56Sopenharmony_ciThreading-like synchronization primitives that can be used in Tasks.
1807db96d56Sopenharmony_ci
1817db96d56Sopenharmony_ci.. list-table::
1827db96d56Sopenharmony_ci    :widths: 50 50
1837db96d56Sopenharmony_ci    :class: full-width-table
1847db96d56Sopenharmony_ci
1857db96d56Sopenharmony_ci    * - :class:`Lock`
1867db96d56Sopenharmony_ci      - A mutex lock.
1877db96d56Sopenharmony_ci
1887db96d56Sopenharmony_ci    * - :class:`Event`
1897db96d56Sopenharmony_ci      - An event object.
1907db96d56Sopenharmony_ci
1917db96d56Sopenharmony_ci    * - :class:`Condition`
1927db96d56Sopenharmony_ci      - A condition object.
1937db96d56Sopenharmony_ci
1947db96d56Sopenharmony_ci    * - :class:`Semaphore`
1957db96d56Sopenharmony_ci      - A semaphore.
1967db96d56Sopenharmony_ci
1977db96d56Sopenharmony_ci    * - :class:`BoundedSemaphore`
1987db96d56Sopenharmony_ci      - A bounded semaphore.
1997db96d56Sopenharmony_ci
2007db96d56Sopenharmony_ci    * - :class:`Barrier`
2017db96d56Sopenharmony_ci      - A barrier object.
2027db96d56Sopenharmony_ci
2037db96d56Sopenharmony_ci
2047db96d56Sopenharmony_ci.. rubric:: Examples
2057db96d56Sopenharmony_ci
2067db96d56Sopenharmony_ci* :ref:`Using asyncio.Event <asyncio_example_sync_event>`.
2077db96d56Sopenharmony_ci
2087db96d56Sopenharmony_ci* :ref:`Using asyncio.Barrier <asyncio_example_barrier>`.
2097db96d56Sopenharmony_ci
2107db96d56Sopenharmony_ci* See also the documentation of asyncio
2117db96d56Sopenharmony_ci  :ref:`synchronization primitives <asyncio-sync>`.
2127db96d56Sopenharmony_ci
2137db96d56Sopenharmony_ci
2147db96d56Sopenharmony_ciExceptions
2157db96d56Sopenharmony_ci==========
2167db96d56Sopenharmony_ci
2177db96d56Sopenharmony_ci.. list-table::
2187db96d56Sopenharmony_ci    :widths: 50 50
2197db96d56Sopenharmony_ci    :class: full-width-table
2207db96d56Sopenharmony_ci
2217db96d56Sopenharmony_ci
2227db96d56Sopenharmony_ci    * - :exc:`asyncio.CancelledError`
2237db96d56Sopenharmony_ci      - Raised when a Task is cancelled. See also :meth:`Task.cancel`.
2247db96d56Sopenharmony_ci
2257db96d56Sopenharmony_ci    * - :exc:`asyncio.BrokenBarrierError`
2267db96d56Sopenharmony_ci      - Raised when a Barrier is broken. See also :meth:`Barrier.wait`.
2277db96d56Sopenharmony_ci
2287db96d56Sopenharmony_ci
2297db96d56Sopenharmony_ci.. rubric:: Examples
2307db96d56Sopenharmony_ci
2317db96d56Sopenharmony_ci* :ref:`Handling CancelledError to run code on cancellation request
2327db96d56Sopenharmony_ci  <asyncio_example_task_cancel>`.
2337db96d56Sopenharmony_ci
2347db96d56Sopenharmony_ci* See also the full list of
2357db96d56Sopenharmony_ci  :ref:`asyncio-specific exceptions <asyncio-exceptions>`.
236