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.