본문 바로가기
용어정리

Thread와 Process 차이

by 나비와꽃기린 2015. 1. 30.

Process
-       실행 중인 프로그램
-       리소스와 쓰레드로 구성
-       모든 프로세스는 하나 이상의 쓰레드를 가지고 있다.
-       Code, Data, Heap, Stack 영역으로 이루어져 있다.
-       각각의 Memory space를 차지한다.


Thread
-       경량화된 프로세스이다.
-       프로세스 내에서 실제 작업을 수행함
-       프로세스 안에서 동작하며 Code, Data, Heap 영역을 공유하고 별도의 Stack만 가지고 있다.
-       Context switching시 Stack영역만 switching하면 되므로 프로세스 스위칭 보다 빠르다.
-       쓰레드 간 자원 공유가 가능하여 편리하지만 자원 동기화의 문제가 있다.


--> 내용보충 (2019.06.21)

- 자바 기반의 대부분 was는 멀티쓰레드 관리를 위해 Thread pool 방식을 이용

- Thread pool 방식을 통해 thread 생성과 소멸에 관련한 자원을 줄일 수 있음

- 단, thread pool 방식은 thread간 자원경합 또는 back-end 처리에 의한 thread

수행 시간이 길어질 수 있기 때문에 자원관리를 잘 해줘야 함.

 

Thread의 장 단점

장점
-       시스템의 Throughput(처리량)이 향상 된다.
-       자원 소모가 줄어든다.
-       응답 시간이 단축된다.
단점
-       다른 프로세스에서 쓰레드를 제어할 수 없다.
-       여러 개의 쓰레드를 사용할 때는 자원 공유의 문제가 발생할 수 있으므로 신중하게 사용해야 한다.
-       디버깅이 어려워진다.

'용어정리' 카테고리의 다른 글

Middleware란?  (0) 2015.01.30
CGI(Common Gateway Interface)란?  (0) 2015.01.30
WebServer란?, WAS란?  (0) 2015.01.30
OraInventory란?  (0) 2015.01.30
Thread와 Process 차이  (0) 2015.01.30
JDK, JRE, JVM 이란  (0) 2015.01.28

댓글0