Resources: Module 01 — Introduction to Async Python¶
Verified resources relevant to this module's content on concurrency models, the GIL, and the foundational asyncio concepts.
Primary Resources¶
-
asyncio — Asynchronous I/O (Python docs) — The official reference. Start with the "High-level API" section, which covers
asyncio.run(),gather(), and task creation at the level this module introduces. -
Coroutines and Tasks (Python docs) — The most relevant subsection of the asyncio docs for this module. Covers coroutines,
asyncio.run(),create_task(),gather(), andsleep()with authoritative examples. -
FastAPI: Concurrency and async / await — FastAPI's explanation of async Python for web developers. Exceptionally well-written, with a clear "race car pit crew" analogy for the event loop. Recommended as a companion read to this module.
Deeper Reading¶
-
PEP 492 — Coroutines with async and await syntax — The original proposal that introduced
async defandawaitin Python 3.5. The "Motivation" and "Rationale" sections explain exactly why the oldyield fromapproach was replaced. -
Python Docs: asyncio — Developing with asyncio — Official guidance on common debugging patterns, including how to detect when you have accidentally blocked the event loop with synchronous code.
-
Python Wiki: The GIL — The Python wiki's explanation of the GIL, including its history, purpose, and the ongoing effort to make it optional in Python 3.13+.
Video Resources¶
-
David Beazley: Python Concurrency From the Ground Up (PyCon 2015) — A famous live-coded talk where Beazley builds an async scheduler from scratch. Gives deep intuition for how
yieldand event loops work together. ~45 minutes; highly recommended after completing Exercise 9 (the from-scratch scheduler exercise). -
Raymond Hettinger: Keynote on Concurrency (PyBay 2017) — Hettinger's clear comparison of threading, asyncio, and multiprocessing with worked examples. Good for reinforcing the "when to use which model" intuition from this module.