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 |
JDK, JRE, JVM 이란 (0) | 2015.01.28 |