nConsider
an application that consists of several independent parts that do not need
to
run in sequence
nEach part can be implemented as a thread
nWhenever one thread is blocked waiting for an I/O, execution
could possibly switch to another thread of the same application (instead of
switching to another process)