지난 포스팅에서 thread에 대해 간단하게 확인해보았으며, 이번 포스팅에서는 muti process, muti thread 의 장단점에대해 확인해보겠습니다.
1. 공통점
- 동시에 두 가지 이상의 루틴을 실행 할 수 있는 역활
2. muti process (멀티 프로세스)
2.1 장점
- 여러 process 중 하나가 죽어도 다른 process에 전이되지 않음
- 현재 수행되고 있는 프로세스를 확인 할 수 있다 (linux 일 경우 ps명령어)
2.2 단점
- 프로세스간에 메모리 공유가 비효율적
- 프로세스간 통신을 위해 IPC를 사용해야함
3. muti thread (멀티 쓰레드)
3.1 장점
- 하나의 프로세스가 다수 개의 작업을 쓰레드로 동시에 동작 할 수 있음
- 스레드간에 메모리 공유가 효율적 (heap영역 공유)
3.2 단점
- 하나의 thread가 죽을 경우 다른 thread에 전이되어 같이 죽음
3.3 실사용 예시
- 게임 프로그램상에서 동작하는 캐릭터들은 thread 단위로 동작함
(process : 메이플 스토리 , thread 1 : 아델, thread 2 : 패스파인더 )
4. muti thread가 효율적인 이유
4.1 centext Switching 시 공유 메모리만큼 자원(시간) 손실이 적기 때문에 부하관리에 효율적
4.2 stack을 제외한 모든 메모리를 공유 할 수 있어서 효율적임
4.3 실사용 예시 (메이플 스토리 process)
- 개별 영역
= [thread 1] stack 영역 : 아델 아이템 리스트
= [thread 2] stack 영역 : 패스파인더 아이템 리스트
- 공유 영역
= [process] heap 영역 : 길드/친구 리스트
-------------------------------------------------------------------------------------------------------------
항상 정확한 정보를 공유하고자 노력하고있지만 내용에 개선이 필요한 부분이 있을 수 도 있습니다.
개선이 필요하다고 판단되는 부분이 있을 경우 댓글로 조언해주시면 감사하겠습니다.
* 해당 포스팅이 도움이되셨다면 공감과 댓글 부탁드릴께요 ㅎㅎ
------------------------------------------------------------------------------------------------------------
'Computer Science > common' 카테고리의 다른 글
[Thread] 동기화 이슈 처리방법 (java) (0) | 2020.04.23 |
---|---|
ElasticSearch 개념 및 구조 (0) | 2020.04.21 |
[Thread] 기초 (0) | 2020.04.18 |
[GIT] git 개념 및 구성 (0) | 2020.01.27 |
data type(자료형)의 개념 (0) | 2018.11.25 |