본문 바로가기

JAVA

병렬처리와 동시성

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


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

 

<그림 첨부> 동시성과 병렬성  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' 카테고리의 다른 글

병렬처리와 동시성  (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
java 8 stream throw exception bubble up (예외사항 전파)  (0) 2019.05.07
linux java 설치  (0) 2019.03.31