쓰레드가 미리 생성되어 있으므로, 쓰레드를 생성하는 비용이 절약되고 응답 속도 문제를 개선할 수 있다.
생성 가능한 쓰레드의 최대치가 있으므로 CPU, 메모리 임계점을 넘는 현상을 방지할 수 있다.
WAS(Web Application Server)의 주요 튜닝 포인트
최대 쓰레드를 너무 낮게 설정하면, 서버 리소스는 여유롭지만 응답이 지연된다.
최대 쓰레드를 너무 높게 설정하면, CPU/메로리 리소스 임계점 초과로 인해 서버가 다운된다.
그렇다면 적정 숫자를 어떻게 찾을 수 있을까?
로직의 복잡도, 서버 환경의 리소스를 고려한다 (상황에 따라 모두 다르므로 최적의 값을 찾기 힘듦)
성능 테스트를 통해 어느 정도의 요청을 버틸 수 있는지 테스트한다. (주로 이 방법 많이 사용)
멀티 쓰레드에 대한 부분은 WAS가 처리하므로 개발자는 멀티 쓰레드 관련 코드를 신경쓰지 않아도 된다. (가장 좋은 점!)
다만, 멀티 쓰레드 환경에서 싱글톤 객체(서블릿, 스프링 빈)는 주의해서 사용하여야 한다.
'스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 김영한 님' 의 강의 내용을 정리한 것입니다.