스레드는 CPU이용의 기본 단위이다.전통적인 프로세스는 하나의 스레드만 가지지만, 만일 프로세스가 다수의 스레드를 갖게 된다면 동시에 하나 이상의 작업을 수행할 수 있다. 또한 같은 프로세스 내의 여러 스레드는 서로 자원들을 공유한다.

스레드의 구성은 어떻게 될까?
- 스레드ID
- 프로그램 카운터(PC)
- 레지스터 집합
- 스택
프로세스의 생성 작업은 매우 많은 시간을 소요하고 많은 자원을 필요로 한다. 그런데 새 프로세스의 작업이 기존 프로세스의 작업과 동일하다면..? 새로 만드는 것 보다 같은 프로세스안에 여러 스레드를 만드는 것이 효율적이다.
스레드는 프로세스의 자원을 공유하기 때문에!
웹 서버는 여러개의 클라이언트로부터 요청을 받으면, 그 요청을 수행한 별도의 프로세스를 만든다.

이러한 스레드 프로그래밍은 어떤 이점이 있을까?