멀티 쓰레드 프로그래밍을 하는중에 병렬처리와 동시성에 대하여 많은 글들을 보고 확인할수있다.
여기서 병렬처리와 동시성의 문구가 다소 혼돈될수있는데 나또한 병렬처리와 동시성이 같은 이야기라 생각했다.
이 두가지의 개념은 각각 이해하여야 하며, 같은 의미로 사용해서는 안대는 것이다.
간단하게 정리하면 다음과 같다.
동시성이란(concurrency)?
동시에 여러 작업을 진행하고자 할때. 동시에 여러 작업을 수행 한다고하여
병렬로 실행되는것과는 다르다. A가 실행될때 B 가 멈추고 B가 실행될때는 A가 멈추는 형식
TASK1 ------ CPU
TASK2 ------ CPU
TASK3 ------ CPU
TASK4 ------ CPU
병렬성이란(paralleism)?
하나의 작업을 하위 작업으로 나누어 동시 수행됨
------SUB-TASK1 ------ CPU
|
------SUB-TASK2 ------ CPU
TASK1----- |
------SUB-TASK3 ------ CPU
|
------SUB-TASK4 ------ CPU
---------------------------------------------------------------------------------
차이점 | 동시성 (Concurrency) | 병렬성(paralleism)
---------------------------------------------------------------------------------
용어차이 | 논리적 | 물리적
---------------------------------------------------------------------------------
뜻 | 동시실행 처럼 보이나 | 실제로 작업이 동시에 처리됨
| 하나씩 번갈아가며 |
---------------------------------------------------------------------------------
코어환경 |싱글코어, 멀티코어에서가능 | 멀티코어에서가능
---------------------------------------------------------------------------------
'JAVA' 카테고리의 다른 글
java excle 대용량 다운로드 poi (0) | 2019.09.19 |
---|---|
java null safe stream 생성 방법 (0) | 2019.09.05 |
CompletableFuture (0) | 2019.05.16 |
API call back off time(재요청 타시간) (0) | 2019.05.07 |
java throws bubble up 예제 (0) | 2019.05.07 |