스레드의 발생
프로세스
- 프로세스 간에는 각 프로세스 데이터 접근이 불가
스레드
- 하나의 프로세스안에서 여러개의 스레드 생성이 가능
- 스레드는 동시에 실행이 가능하고 프로세스 안에서 여러개가 생성되었기 때문에 프로세스의 데이터에 모든 스레드가 접근 가능함
멀티 스레드
- 소프트웨어 병행 작업 처리를 위해 멀티스레드 사용
멀티 프로세싱과 멀티 스레드
- 멀티 태스킹은 선점형 스케쥴러를 사용해 프로세스들을 동시에 실행하는것처럼 만드는 원리
- 멀티 스레드는 작업을 쪼개서 여러개로 나눠 처리
스레드 장점
- 사용자에 대한 응답성 향상
- 자원 공유 효율
- 작업이 분리되어 간결한 코드 작성 가능
스레드 단점
- 프로세스 안에서 여러개의 스레드로 나눠서 작업을 처리하기 때문에 한개 스레드에 문제가 생기면 전체 프로세스에 이상이 생김
- Context Switching이 많이 일어나 성능 저하
스레드 vs 프로세스
- 프로세스는 독립적, 스레드는 프로세스의 서브셋
- 프로세스는 각각 독립적 자원을 가짐, 스레드는 프로세스 자원 공유
- 프로세스는 자신만의 주소 영역을 가짐, 스레드는 주소영역 공유
- 프로세스간에는 IPC기법으로 통신해야 함, 스레드는 필요 없음