1.2.5 멀티 프로세스와 멀티 스레드 중요도 ★★★
멀티 프로세스와 멀티 스레드 개념을 이해하려면 동시성과 병렬성을 알아야 한다.
동시성(concurrency)은 하나의 코어(싱글 코어)에서 여러 작업을 번갈아 가면서 처리하는 방식이다. CPU는 한 번에 하나의 작업만 처리할 수 있어서 여러 작업을 조금씩 돌아가면서 처리한다. 이렇게 하나의 CPU에서 여러 작업을 번갈아 가면서 처리하기 위해 처리 중인 작업을 교체하는 것을 콘텍스트 스위칭(context switching)이라고 한다.
병렬성(parallelism)은 CPU가 여러 개(멀티 코어) 있어서 각 CPU에서 각 작업을 동시에 처리하는 방식이다. 즉, 물리적인 시간 관점에서 동시에 여러 작업이 처리된다.
![](https://thebook.io/img/080367/029.jpg)
▲ 그림 1-14 동시성과 병렬성