1 :mod:`asyncio` --- Asynchronous I/O 2 =================================== 3 4 .. module:: asyncio 5 :synopsis: Asynchronous I/O. 6 7 -------------- 8 9 .. sidebar:: Hello World! 10 11 :: 12 13 import asyncio 14 15 async def main(): 16 print('Hello ...') 17 await asyncio.sleep(1) 18 print('... World!') 19 20 # Python 3.7+ 21 asyncio.run(main()) 22 23 asyncio is a library to write **concurrent** code using 24 the **async/await** syntax. 25 26 asyncio is used as a foundation for multiple Python asynchronous 27 frameworks that provide high-performance network and web-servers, 28 database connection libraries, distributed task queues, etc. 29 30 asyncio is often a perfect fit for IO-bound and high-level 31 **structured** network code. 32 33 asyncio provides a set of **high-level** APIs to: 34 35 * :ref:`run Python coroutines <coroutine>` concurrently and 36 have full control over their execution; 37 38 * perform :ref:`network IO and IPC <asyncio-streams>`; 39 40 * control :ref:`subprocesses <asyncio-subprocess>`; 41 42 * distribute tasks via :ref:`queues <asyncio-queues>`; 43 44 * :ref:`synchronize <asyncio-sync>` concurrent code; 45 46 Additionally, there are **low-level** APIs for 47 *library and framework developers* to: 48 49 * create and manage :ref:`event loops <asyncio-event-loop>`, which 50 provide asynchronous APIs for :meth:`networking <loop.create_server>`, 51 running :meth:`subprocesses <loop.subprocess_exec>`, 52 handling :meth:`OS signals <loop.add_signal_handler>`, etc; 53 54 * implement efficient protocols using 55 :ref:`transports <asyncio-transports-protocols>`; 56 57 * :ref:`bridge <asyncio-futures>` callback-based libraries and code 58 with async/await syntax. 59 60 61 .. We use the "rubric" directive here to avoid creating 62 the "Reference" subsection in the TOC. 63 64 .. rubric:: Reference 65 66 .. toctree:: 67 :caption: High-level APIs 68 :maxdepth: 1 69 70 asyncio-task.rst 71 asyncio-stream.rst 72 asyncio-sync.rst 73 asyncio-subprocess.rst 74 asyncio-queue.rst 75 asyncio-exceptions.rst 76 77 .. toctree:: 78 :caption: Low-level APIs 79 :maxdepth: 1 80 81 asyncio-eventloop.rst 82 asyncio-future.rst 83 asyncio-protocol.rst 84 asyncio-policy.rst 85 asyncio-platforms.rst 86 87 .. toctree:: 88 :caption: Guides and Tutorials 89 :maxdepth: 1 90 91 asyncio-api-index.rst 92 asyncio-llapi-index.rst 93 asyncio-dev.rst 94