Start here. This is the direct spoken answer to practice first.
Overview
Treats cancellation as cooperative control flow with reliable resource cleanup and propagation.
Task cancellation is cooperative. cancel() requests cancellation, and CancelledError is normally raised in the task at an await point. Code should release locks, close resources, and restore invariants in finally or async context managers, then normally let cancellation propagate. Catching and suppressing it can break the caller's timeout, a TaskGroup, or application shutdown.