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:

    参见

    The module was designed in PEP 3156. For a motivational primer on transports and protocols, see .