The asyncio package has been included in the standard library on a
provisional basis. Backwards incompatible
changes (up to and including removal of the module) may occur if deemed
necessary by the core developers.

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:

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.

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. Enable the debug mode during development to detect common issues.