프로그램을 다수의 실행 단위로 나눠 실행
각각의 스레드가 고유의 레지스터와 스택으로 표현
장점
대응적 : 일부가 차단되거나 장시간 작업 수행에도 계속 실행 가능(다른 스레드를 사용하면서 다운되지 않음)
자원 공유성 : 프로세스의 자원과 상태를 공유하여 효율적
경제성 : 속한 프로세스의 자원을 공유하기 때문에 스레드를 만들고 컨텍스트 스위치를 진행하는 것이 더 경제적 (자원이 겹칠 경우에 똑같은 자원을 메모리에 할당하면 비경제적)
확장성 : 다수의 코어에서 병렬로 프로세스 실행
유저 스레드와 커널 스레드
멀티스레드 - 다대일 모델
다수의 유서 스레드가 하나의 커널 스레드와 맵핑
한 번에 하나의 스레드만 커널 스레드에 접근할 수 있으므로 멀티 스레드는 멀티 코어 시스템에서 병렬로 실행할 수 없음
멀티스레드 - 일대일 모델