18.5. asyncio – Asynchronous I/O, event loop, coroutines and tasks
New in version 3.4.
Source code: Lib/asyncio/
This module provides infrastructure for writing single-threaded concurrent code using coroutines, multiplexing I/O access over sockets and other resources, running network clients and servers, and other related primitives. Here is a more detailed list of the package contents:
- a pluggable event loop with various system-specific implementations;
- transport and protocol abstractions (similar to those in Twisted);
- concrete support for TCP, UDP, SSL, subprocess pipes, delayed calls, and others (some may be system-dependent);
- a Future class that mimics the one in the concurrent.futures module, but adapted for use with the event loop;
- coroutines and tasks based on yield from (PEP 380), to help write concurrent code in a sequential fashion;
- cancellation support for Futures and coroutines;
- synchronization primitives for use between coroutines in a single thread, mimicking those in the threading module;
- an interface for passing work off to a threadpool, for times when you absolutely, positively have to use a library that makes blocking I/O calls.
Table of content:
- 18.5.1. Event loops
- 18.5.1.1. Event loop policies and the default policy
- 18.5.1.2. Event loop functions
- 18.5.1.3. Event loop policy interface
- 18.5.1.4. Access to the global loop policy
- 18.5.1.5. Run an event loop
- 18.5.1.6. Calls
- 18.5.1.7. Delayed calls
- 18.5.1.8. Creating connections
- 18.5.1.9. Creating listening connections
- 18.5.1.10. Watch file descriptors
- 18.5.1.11. Low-level socket operations
- 18.5.1.12. Resolve host name
- 18.5.1.13. Running subprocesses
- 18.5.1.14. UNIX signals
- 18.5.1.15. Executor
- 18.5.1.16. Error Handling API
- 18.5.1.17. Debug mode
- 18.5.1.18. Server
- 18.5.1.19. Handle
- 18.5.1.20. Example: Hello World (callback)
- 18.5.1.21. Example: Set signal handlers for SIGINT and SIGTERM
- 18.5.2. Tasks and coroutines
- 18.5.3. Transports and protocols (low-level API)
- 18.5.4. Streams (high-level API)
- 18.5.5. Subprocess
- 18.5.6. Synchronization primitives
- 18.5.7. Develop with asyncio