Python Asyncio Jump-Start: Asynchronous Programming And Non-Blocking I/O With Coroutines

Front Cover - Computers - 131 pages

Asyncio is an exciting new addition to Python.

It allows regular Python programs to be developed using the asynchronous programming paradigm.

It includes changes to the language to support coroutines as first-class objects, such as the async def and await expressions, and the lesser discussed async for and async with expressions for asynchronous iterators and context managers respectively.

Asyncio is the way to rapidly develop scalable Python programs capable of tens or hundreds of thousands of concurrent tasks.

Developing concurrent programs using coroutines and the asyncio module API can be very challenging for beginners, especially those new to asynchronous programming.

Introducing: "Python Asyncio Jump-Start". A new book designed to teach you asyncio in Python, super fast!

You will get a rapid-paced, 7-part course focused on getting you started and make you awesome at using asyncio.


* How to define, schedule, and execute asynchronous tasks as coroutines.

* How to manage groups of asynchronous tasks, including waiting for all tasks, the first that, or the first task to fail.

* How to define, create, and use asynchronous iterators, generators, and context manages

* How to share data between coroutines with queues and how to synchronize coroutines to make code coroutine-safe.

* How to run commands as subprocesses and how to implement asynchronous socket programming with streams.

* How to develop a port scanner that is nearly 1,000 times faster than the sequential version.

Each of the 7 lessons was carefully designed to teach one critical aspect of asyncio, with explanations, code snippets, and complete examples.

Each lesson ends with an exercise for you to complete to confirm you understood the topic, a summary of what was learned, and links for further reading if you want to go deeper.

Stop copy-pasting code from StackOverflow answers.

Learn Python concurrency correctly, step-by-step.


Selected pages


Lesson Structure
Asyncio Concurrency
Coroutines and Tasks
Collections of Tasks
Queues and Synchronization Primitives
How to Protect Critical Sections with a Mutex Lock
How to Signal Between Coroutines Using an Event
Lesson Review
Port Scanner Case Study

Common terms and phrases

About the author

Jason Brownlee, Ph.D. helps Python developers bring modern concurrency methods to their projects with hands-on tutorials. Learn more at

Jason is a software engineer and research scientist with a background in artificial intelligence and high-performance computing. He has authored more than 20 technical books on machine learning and has built, operated, and exited online businesses.

Bibliographic information