스레드를 생성, 유지, 삭제하는데에도 자원을 소모한다. 작업을 완료했을 때 스레드를 삭제하고 다른 작업을 실행할 때 생성하는 것보다 만들어둔 스레드에 새 작업을 할당하는 것이 더 자원을 효율적으로 사용할 수 있다.
컴파일러의 최적화에 의해 코드의 순서가 바뀌는 경우를 방지한다.