티스토리 뷰
728x90
반응형
어제 수업을 듣다가 동시성과 병렬성에 대해 배웠다.
말로만 들으니 헷갈려서 시간이 난 김에 정리.
선 요약
병렬성은 동시성을 구현하는 방법 중 하나.
동시성은 동시처럼 보이지만 수도(Pseudo) 동시성.
병렬성이 진짜 동시성.
Concurrency vs. Parallelism
동시성(Concurrency) | 병렬성(Parallelism) |
여러 작업이 동시에 실행되고 있는 것처럼 처리되는 것 | 여러 작업이 실제로 동시에 실행되는 것 |
싱글(멀티) 코어 환경에서 논리적 멀티 스레드 생성 및 오버래핑 | 멀티 코어 환경에서 물리적 멀티 스레드 생성 및 실행 |
2개 이상의 논리 스레드 필요 | 2개 이상의 코어, 2개 이상의 물리 스레드 필요 |
빠른 시간에 하나씩 많은 것을 번갈아가며 처리(멀티 태스킹) | 한번에 많은 것을 처리(멀티 코어 프로세서) |
최대한 많은 연산을 동시에 종료하는 것이 목표 | 작업 처리량과 연산속도 증가가 목표 |
동일 연산에 대해 매번 다른 결과(비결정론적) | 동일 연산에 대해 항상 같은 결과 보장(결정론적) |
간단하게 정리하면 동시성은 하나의 코어가 논리적으로 여러 가지 작업을 빠르게 번갈아가며 처리하는 것이고,
병렬성은 두 개 이상의 코어가 작업을 물리적으로 나눠서 말 그대로 동시에 처리하는 것을 말한다.
아래 그림을 보자.
싱글코어 동시성의 연산 과정과 멀티코어 병렬성의 연산 과정이 다른 모양을 가지는 것을 확인할 수 있다.
위 그림을 축을 회전시켜서 그리면 아래와 같이 그릴 수도 있다.
마지막으로 조금 추상적으로 말하자면 병렬성은 동시성의 하위 개념이자 동시성을 구현하는 방법 중 하나이며,
병렬성 없는 동시성은 있어도 동시성 없는 병렬성은 없다고 할 수도 있다.
반응형
'Java+Spring > Java' 카테고리의 다른 글
[Java]싱글톤 패턴(Singleton Pattern) (0) | 2023.05.03 |
---|---|
[Java]Map.Entry 인터페이스 (0) | 2023.03.29 |
[Java]컬렉션 프레임워크에서 제공하는 합집합, 교집합, 차집합, 부분집합 (0) | 2023.01.29 |
[Java]스트림에서 개수, 합계, 평균, 최대, 최소를 한 번에! summarizingInt() (4) | 2022.10.13 |
[Java]Printf()로 출력하기 (0) | 2022.10.11 |
[Java]문자열 앞 뒤 공백 제거, trim() vs. strip() (0) | 2022.10.11 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 기술면접
- java
- RX100M5
- Algorithm
- 백준
- BOJ
- 세계일주
- 세계여행
- 칼이사
- a6000
- 맛집
- 남미
- 파이썬
- 야경
- 지지
- spring
- Python
- 리스트
- 면접 준비
- 스트림
- 유럽여행
- 자바
- 유럽
- 스프링
- 동적계획법
- 중남미
- 여행
- Backjoon
- 세모
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함