18.5. asyncio — Asynchronous I/O, event loop, coroutines and tasks
Source code:
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;
and protocol abstractions (similar to those in );
a Future class that mimics the one in the module, but adapted for use with the event loop;
coroutines and tasks based on (PEP 380), to help write concurrent code in a sequential fashion;
cancellation support for s and coroutines;
synchronization primitives for use between coroutines in a single thread, mimicking those in the module;
Asynchronous programming is more complex than classical “sequential” programming: see the Develop with asyncio page which lists common traps and explains how to avoid them. during development to detect common issues.
Table of contents:
- 18.5.1. Base Event Loop
- 18.5.3. Tasks and coroutines
- 18.5.6. Subprocess
- 18.5.7. Synchronization primitives
- 18.5.8. 队列集
参见
The module was designed in PEP 3156. For a motivational primer on transports and protocols, see .