Threads exist from the time their first instruction begins executing until the time of last instruction execution
Threads with overlapping lifetimes are running concurrently
A key feature of most operating systems is allow threads to run concurrently
Why is it desirable for the computer to execute multiple threads concurrently, rather than waiting for one to finish before starting another?
make -j