프로그램의 일부분(Thread)이 중단되거나 긴 작업을 수행하더라도 프로그램의 수행이 지속되어 사용자에 대한 응답성이 증가한다.
프로세스 내 자운들과 메모리 공유를 하기 때문에 메모리 공간과 싀스템 자원 소모가 줄어든다. 또한 프로세서간 context switching과 달리 Thread간 context switching은 캐시 메모리를 비울 필요가 없기 때문에 더 빠르다.
다중 CPU 구조에서는 각각의 Thread가 다른 프로세서에서 병렬로 수행될 수 있기 때문에 병렬성이 증가한다.
둘 이상의 Thread가 동시에 실행되며 공유 자원에 동시에 접근하는 경우, 데이터와 힙 영역을 공유하기 때문에 예상치 못한 결과가 반환될 수 있다. 따라서 동기화 작업이 필요하다.
동기화 과정을 통해 Thread의 작업 처리 순서와 공유 자원에 대한 접근을 컨트롤 할 수 있지만, 불필요한 동기화의 경우 과도한 lock이 발생할 수 있다.
context switching, 동기화 등의 이유 때문에 싱글 코어 멀티 스레딩은 스레드 생성 시간이 오히려 오버헤드로 작용해 단일 스레드보다 느리다.