다중 스레드로 구성된 task 구조에서는 하나의 서버 스레드 가 blocked(waiting)상태인 동안에도 동일한 task 내의 다른 스레드가 실행(running)되어 빠른 처리를 할 수 있다.
동일한 일을 수행하는 다중 스레드가 협력하여 높은 처리율(throughput)과 성능 향상을 얻을 수 있다
스레드를 사용하면 병렬성을 높일 수 있다.
응답성
multithreaded 프로그램은 그것의 일부가 block되어도 나머지는 계속 실행 가능
자원 공유
같은 process의 thread는 자원을 공유함
경제성
process마다 메모리와 자원을 할당하면 overhead가 발생하는데,thread를 사용하면 비용이 저렴해지고, 문맥교환(context switch)가 용이해짐
user thread
사용자 공간에서 thread 라이브러리를 통해 제공 kernel 자원 없이 thread 생성, 스케줄링, 관리를 제공
kernel thread
os가 직접 지원 , kernel이 thread생성, 스케줄링,관리 담당 , mode 변경이 필요하므로 상대적으로 느림