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