병렬성 동시성 차이

병렬성(Parallelism) vs 동시성(Concurrency)

병렬성과 동시성은 여러 작업이 동시에 진행된다는 비슷한 개념이지만 차이가 있다.

간단하게 요약하자면 다양한 작업을 진행해야하는 상황에서 병렬성은 여러 사람이 각자 분업하여 자신이 담당한 작업만 따로따로 작업하는 방식이고, 동시성은 한 사람이 모든 작업을 바꿔가며 조금씩 진행하는 방식이다.

물리적으로 동시에 실행 vs 논리적으로 동시에 실행

병렬성과 동시성은 컴퓨팅 리소스의 CPU 코어와 연관이 깊다. 병렬성은 CPU 코어를 여러개 사용하고 동시성은 CPU 코어를 단 하나만 사용한다고 생각하면 이해하기 쉽다.

병렬성은 여러개의 CPU 코어가 물리적으로 따로 실행되기 때문에 실제로 여러 작업이 동시에 진행된다.

동시성은 한개의 CPU 코어만 실행되기 때문에 실제로는 여러 작업이 동시에 진행되지는 않고 단순히 동시에 진행되는 것처럼 보이게 하기 위해 멀티태스킹처럼 이거했다 저거했다 하는 식으로 일이 진행되어, 결과적으로 논리적으로 동시에 실행된다는 개념이다.

요약

구분 동시성 병렬성
개념 동시에 처리하는 것처럼 보이게 하는 것 여러 작업을 실제로 동시에 처리하는 것
사용 코어 수 싱글 코어 멀티 코어
동작 방식 싱글 코어에서 멀티 쓰레드(Multi thread)를 동작 시키는 방식 멀티 코어에서 멀티 쓰레드(Multi thread)를 동작시키는 방식
개념적 차이 논리적인 개념 물리적인 개념

results matching ""

    No results matching ""