Computer Science/common

[Thread] muti Process VS muti Thread

짠백이 2020. 4. 18. 18:22
반응형

지난 포스팅에서 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