Concurrency - 동시성
- Making Progress on more than one task - seemingly at the same time

thread 1 → thread 2 (Context Switch)가 너무 빨라서 동시에 여러 쓰레드를 실행 하는 것 처럼 느껴짐
Parallel Execution - 병렬 실행
- Making progress on more than one task at the exact same time.

- CPU나 core 단위로 병렬 실행 가능함
Parallel Concurrent Execution
Making progress on more than one task - seemingly at the same time - on more than one CPU.

Thread 1 과 Thread 2 는 병렬 실행 안됨!
Parallelism - 병렬성
Splitting a single task into subtasks which can be executed in parallel.

Combinations
- Concurrent, Not Parallel
- Parallel, Not Concurrent
- Both Concurrent and Parallel
- Neither Concurrent, Nor Parallel