Concurrency와 Parallelism에 대해 간단히 정리한다.
Concurrency
- 가짜 병렬
- 코어는 하나임에도 두개의 서로 다른 동작을 번갈아가며 처리하여 동시에 수행하는 것 "처럼" 보이는 것
- 소프트웨어 수준으로 처리
- Thread, Actor 등
Parallelism
- 진짜 병렬
- 물리적으로 2개 이상의 코어에서 작업이 이루어지는 것
- 순수하게 정말 "동시"에 두개의 작업을 실행할 수 있음
데이터 병렬성
- 전체 데이터 -> 서브 데이터들
- 각각의 서브 데이터들에 대해 병렬 처리
- 코어 개수만큼 물리적으로 동시에 실행됨
작업 병렬성
- 서로 다른 작업을 병렬 처리
- 웹 서버의 경우 각각의 브라우저에서 요청한 내용을 개별 스레드에서 병렬로 처리함
비교