Blocking occurs when execution waits for a required resource or operation before continuing. Synchronous work makes one process wait for another; asynchronous processing allows independent work to continue without waiting for a response. section 8.2 section 9.3.1
A synchronous image loop
A Python loop creates eight images one after another, producing a local baseline of about 46 seconds. Each operation blocks the next until it finishes, motivating independent asynchronous work. section 8.2
Network requests provide another case: a call blocks while waiting for returned data, whereas an asynchronous call can switch to other work. A Rust search function uses asynchronous HTTP retrieval and response parsing. section 9.3.1
Listing 8.3 Console: Running multiple processes at once
python main.py & python main.py
Running two Python processes from the console provides a concrete contrast with work performed in a single blocking sequence. section 8.2








