Thread
Problem
One application may need to perform multiple activities concurrently.
Creating an entirely separate process for every activity is relatively expensive.
Solution — Thread
A process can contain multiple execution threads sharing the process's memory.
Process ├─ Thread A ├─ Thread B └─ Thread C
Core idea: threads provide concurrent execution within a shared process.