Roel Notebook

[Java] 동시성(Concurrency)과 병렬성(Parallelism) 차이

by Roel Downey
728x90
반응형

동시성(Concurrency)

동시성은 앞에서 언급했듯이 많은 일을 한번에 다루는 걸 의미한다.

동시성은 작업들을 동시에 실행하는 것이 아니라 위의 그림같이 여러 작업들을 작게 쪼개서 번갈아 가며 수행하는 것을 의미한다.
컴퓨터에서는 굉장히 빠른 속도로 처리하기 때문에 동시에 처리되는 것처럼 느껴지지만 시간의 관점으로는 동시가 아니다.
이러한 관점으로 본다면 싱글코어 컴퓨터가 어떻게 멀티태스킹이 가능한지 알 수 있다.

현실세계에서 병렬적으로 일어나는 일들을 컴퓨터 세계에서 구현하기 위한 방법 중 하나가 '동시성'이다.

병렬성(Parallelism)

병렬성은 동시에 많은 일을 실행하는 것을 의미한다.
시간의 관점으로도 완벽한 동시가 맞다.
병렬성은 싱글 코어에서는 불가능하다. 멀티 코어이거나 싱글 코어 컴퓨터가 둘 이상 존재할 때 가능하다.
예를 들어 글 작성 기능 중 이미지 업로드 기능을 비동기로 구현한다고 가정해본다. 이때 리사이징이나 화질 저하 같은 작업들이 서버에서 처리한다면 병렬성이라고 할 수 있다.

 

 

 

 

 

 

 

728x90
반응형

블로그의 정보

What doing?

Roel Downey

활동하기