병렬처리와 동시성

2019.05.27 20:01JAVA

멀티 쓰레드 프로그래밍을 하는중에 병렬처리와 동시성에 대하여 많은 글들을 보고 확인할수있다.
여기서 병렬처리와 동시성의 문구가 다소 혼돈될수있는데 나또한  병렬처리와 동시성이 같은 이야기라 생각했다.
이 두가지의 개념은 각각 이해하여야 하며, 같은 의미로 사용해서는 안대는 것이다.


간단하게 정리하면 다음과 같다.

 

<그림 첨부> 동시성과 병렬성  https://www.javaworld.com/article/2076774/programming-java-threads-in-the-real-world--part-1.html



동시성이란(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
병렬처리와 동시성  (0) 2019.05.27
CompletableFuture  (0) 2019.05.16
API call back off time(재요청 타시간)  (0) 2019.05.07
java throws bubble up 예제  (0) 2019.05.07