728x90
Thread(쓰레드)
프로세스(Process) 실행의 단위로 정의할 수 있다.
하나의 프로세스는 1개이상의 Thread로 구성되어있고, Thread는 프로세스의 메모리와 자원을 서로 공유한다.
그리고, 각각의 Thread 마다 registers와 stack을 소유하고 있다.
그림으로 표현하면 아래처럼 표현이 가능하다.

1. Thread 사용의 장점
- 자원의 효율성 증대
- 처리 비용 감소
- 프로그램 응답시간 단축(간단한 통신방법)
- 프로세스 내에서 메모리 영역을 공유하고, 힙영역을 공유하고 있으므로 데이터를 주고받기 편하고, 통신 비용이 적다.
2. Thread 사용의 문제점
- 자원을 서로 공유하고 있어서 병목현상 또는 데드락 등 동기화 문제가 발생할 수 있다.
- 설계가 어렵고 디버깅이 힘들다.
- 하나의 스레드에 문제가 생기면 전체 프로세스에 영향을 끼친다.
- 그렇다고 해서 하나의 단일 스레드를 사용하면 기대하는 효과만큼의 성능을 나타내지는 않는다.
728x90