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

SodiumSulfate님의 프로필 이미지
SodiumSulfate

작성한 질문수

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

요청마다쓰레드 생성하는 방식의 단점에 대한 질문입니다

작성

·

178

0

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

[질문 내용]
안녕하세요 요청마다쓰레드 생성하는 방식의 단점(챕터1 2강)강의를 듣고 질문이 생겨서 문의드립니다
 
 
## 교안 "스프링MVC-웹애플리케이션이해" 35페이지를 보면
- 요청마다 쓰레드 생성의 단점으로 쓰레드는 컨텍스트 스위칭 비용이 발생한다 라고 강의해주셨는데요
- 짧은 저의 생각이지만 , 해당(컨텍스트 스위칭 비용 발생) 문제는 쓰레드 풀 방식에서도 동일하게 발생할텐데? 라는 의문이 듭니다.
 
 
## 이 지점에서 궁금증이 들어 질문올리게 되었습니다!
- 쓰레드 풀 방식에서는 컨텍스트 스위칭 비용을 줄일 수 있는 방법이 있는지 궁금합니다.
- "쓰레드 풀" 방식 대비 "요청마다쓰레드생성" 방식에서는 상대적으로 쓰레드 숫자가 많으므로 >> 더 많은 쓰레드 수가 있으면 더 많은 컨텍스트 스위칭이 일어나므로 >> 결론적으로 쓰레드 풀 방식이 컨텍스트 스위칭 비용이 비교적 작다! 라는 맥략으로 이해했는데 혹시 제가 오해한 부분이 있는지 궁금합니다

답변 1

1

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 김동훈님

쓰레드는 컨텍스트 스위칭 비용이 발생한다

-> 이 부분은 쓰레드 풀과는 무관합니다. 쓰레드 자체가 컨텍스트 스위칭 비용이 발생합니다. 여러 쓰레드를 사용하게 되니 컨텍스트 스위칭 비용이 발생하는 것으로 이해하시면 됩니다.

참고로 스프링 웹 플럭스 같은 기술을 사용하면 쓰레드를 CPU 숫자에 맞추어서 비동기 넌블럭킹으로 동작하기 때문에 컨텍스트 스위칭 비용이 거의 발생하지 않습니다.

감사합니다.

SodiumSulfate님의 프로필 이미지
SodiumSulfate
질문자

아하 넵! 답변해주셔서 감사합니다. 

 

지금은 일단 MVC와 Spring 자체를 열심히 공부하고 익힌 다음에 2024년 이전에는 꼭! 비동기 프로그래밍, 스프링 웹플럭스 , 리액티브 자바 부분도 학습해 보겠습니다!

 

 

SodiumSulfate님의 프로필 이미지
SodiumSulfate

작성한 질문수

질문하기