Waiting for a pizza to cook can leave you stuck in a chair, unable to do anything else. In computing, an operation is blocking when it cannot return or make progress until an I/O operation or other required event completes. While waiting for I/O, the application may leave the processor idle. section 10.8 section 10.9
Blocking has different consequences depending on where it happens:
- A blocking socket call such as recv() waits until data arrives; a web server that spends much of its time waiting for clients can use the CPU inefficiently. section 10.9
- Blocking and synchronous are related but distinct: blocking describes whether an I/O call returns before completion, while synchronous describes the flow of control. section 11.8
- A blocked thread can leave other ready tasks available to run, but blocking the main thread of an event loop can stop the whole system from responding. section 10.10 section 12.1








