Blocking operations wait until completion before returning control.

Non-blocking operations return immediately, allowing other work to continue.


Synchronous vs Asynchronous

Model Behavior
Synchronous Wait for task to finish before moving to the next
Asynchronous Start task, continue immediately, handle result later

Asynchronous means things can happen independently of the main program flow.


I/O Bound Tasks

Operations that spend most of their time waiting for input/output to complete.

Examples:

Characteristics:

Concurrency Strategy: