인프런 커뮤니티 질문&답변

11 1님의 프로필 이미지
11 1

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

동시 요청 - 멀티 쓰레드

WAS의 스레드풀은 초기 스레드 수가 0이 아닌 다른 숫자인가요?

해결된 질문

작성

·

370

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[질문 내용]

스레드풀의 장점에 써진 다음 내용에 대해 추가적으로 궁금한 점이 있습니다.

 

'쓰레드가 미리 생성되어 있으므로, 쓰레드를 생성하고 종료하는 비용(CPU)이 절약되고, 응답 시간이 빠르다.'

 

WAS에서의 스레드풀은 HTTP 요청이 오기도 전에, 미리 스레드들을 최대치만큼 만들어 두나요?

 

자바 문법에선

Executors.newCachedThreadPool()

Executors.newFixedThreadPool(int n)

두 메서드 모두 초기 스레드 수는 0으로 알고 있습니다. 작업이 생길 때마다 스레드를 생성시키는 거로 알고 있는데,

 

WAS에서의 스레드풀은 요청이 오기도 전부터 스레드를 미리 만들어 두나요? 즉, 초기 스레드 수가 0이 아닌 다른 숫자인가요?

답변 1

2

안녕하세요. 11 1님, 공식 서포터즈 코즈위버입니다.

WAS의 쓰레드풀 크기(기본사이즈 및 최대사이즈)는 설정에 따라 다릅니다.

아파치 혹은 톰캣같은 웹서버의 설정파일에서 이를 조절할 수 있습니다.

기본적으로 최대쓰레드는 200개 내외로 설정되어 있으며 코어쓰레드는 20~25개 남짓으로 설정되어 있는 경우가 많으나 이는 웹서버와 버전에 따라 달라질 수 있습니다.

감사합니다.

11 1님의 프로필 이미지
11 1
질문자

자바 책에선 초기 스레드 수, 코어 스레드 수, 최대 스레드 수 이렇게 3개로 나뉘어 있고

초기 스레드 수는 0으로 적혀 있기는 한데

스프링에선 그냥 코어 스레드 수, 최대 스레드 수 정도만 신경 써도 무방할까요?

웹 개발을 하시다보면, 한개의 클라이언트 요청 안에서 쓰레드를 직접 제어하는 경우가 많지는 않습니다.

제 생각엔 쓰레드의 개념과 쓰레드 생성 효율을 높이기 위한 쓰레드 풀 개념을 이해하고 넘어가시면 좋을것 같습니다 :)

11 1님의 프로필 이미지
11 1
질문자

답변 감사합니다.

11 1님의 프로필 이미지
11 1

작성한 질문수

질문하기