프로세스란?
- 실행중인 프로그램
- 주기억장치, CPU의 실행단위
- 동적인 프로그램
- 리소스와 스레드의 구성
- 모든 프로세스는 하나 이상의 스레드를 가짐
스레드란?
- 경량화된 프로세스
- 프로세스 내에서 실제 작업을 수행함
- 한 프로세스 내에서 동작되는 여러 실행의 흐름
스레드 장점
- 시스템의 자원 소모가 줄어든다. 프로그램의 응답 시간이 단축된다
- 프로세스 간 통신 방법에 비해 스레드간의 통신 방법이 훨씬 간단하다
스레드의 단점
- 프로세스 밖에서 스레드 각각을 제어할 수 없다.
- 여러 개의 스레드를 이용하는 프로그램을 작성하는 경우에는 주의 깊게 설계 해야 한다.
- 미묘한 시간차나 잘못된 변수를 공유함으로써 오류가 발생할 수 있다.
- 프로그램의 디버깅이 어렵다. 단일 프로세서 시스템에서는 효과를 기대하기 어렵다.
프로세스와 스레드의 차이점
메모리 사용에 대한 차이
프로세스는 독립적으로 실행됩니다. 자신만의 고유 메모리를 할당 받아서 사용합니다.
스레드는 한 프로세스 내의 여러 흐름으로서 프로세스 내 주소 공간이나 자원을 공유해서 실행합니다.
이러한 특성으로 인해 프로세스 간의 전환보다는 스레드 간의 전환 속도가 더 빠릅니다.