멀티 쓰레드와 싱글톤 스레드
495
投稿した質問数 44
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
예
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
예
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
아니오
[질문 내용]
안녕하세요. 좋은 강의 감사드립니다.
강의를 보다보니 몇 가지 궁금한 부분이 생겼습니다.
동시성 이슈를 해결하기 위해 멀티 스레드를 활용하는 부분은 이해가 되었는데요, WAS 가 리소스를 효율적으로 사용하기 위해 서블릿을 싱글톤패턴을 통해 인스턴스 하나를 사용하는 경우
1. 여러 스레드가 하나의 서블릿 인스턴스에 동시에 접근하여 문제가 발생하지는 않나요?
2. 이런 부분들은 WAS 의 서블릿컨테이너가 알아서 관리를 해주는걸까요?
3. 맞다면 혹시 서블릿 컨테이는 어떤방식으로 관리하는지에 대해 알아볼 수 있는 자료같은게 있을까요?
回答 2
0
답변 감사합니다.
링크를 통해 추측한 내용은 Servlet 은 힙 영역에 저장되어 애플리케이션의 모든 영역에서 접근 가능하고, 각 Thread 들은 Servlet 으로부터 HttpRequest, HttpResponse 정보를 전달받아 stack 영역에 두고 사용함으로써 Thread 사이의 동시성 이슈를 해결할 수 있다고 생각되는데요.
HttpRequest 와 HttpResponse 는 Servlet 에서 생성해서
각 Thread 로 전달할 때 동시성 이슈가 생기지는 않나요?
예를들어 다음과 같은 순서로 진행되는 경우입니다.
1번 요청 진입
Servlet 에서 1번 HttpRequest 객체 생성
(Servlet 이 HttpRequest 를 스레드에 전달하기 전)
2번 요청 진입
Servlet 에서 2번 HttpRequest 객체 생성
위와 같은 경우에는 1번 요청은 무시될 수 있을 것 같다는 생각이 들어서요.
0
이 또한 마찬가지입니다. 각 스레드마다 서블릿의 service()를 호출하고, service() 내에서 스레드마다 새로운 HttpServletRequest를 생성하기 때문에 스레드끼리 HttpServletRequest를 공유할 일은 없다고 생각합니다.
servlet과 container에 대한 질문입니다
0
19
1
api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?
0
62
1
jsp 의존성 수정 요청
0
75
2
요즘 웹 서버가 주로 사용되는 이유는 SPA 구조 때문일까요 ?
0
142
1
save() 메서드 문의
0
65
1
절대 경로로 templates/basic 하위 파일 열면 css 적용 안되는 현상
0
99
1
request-body-json
0
83
2
MVC 패턴의 적용 단위
0
94
1
RequestMapping을 이용한 핸들러, 어댑터
0
118
2
save 후 결과화면
0
86
2
jsp를 이용한 view
0
97
1
application.properties에 debug 추가해도 결과가 똑같습니다.
0
174
1
수업 코드 제공 관련 문의
0
96
2
RequestMappingHandlerAdapter의 Controller 호출 과정
0
98
3
파일 오픈 시
0
68
1
스프링 배치 관련
0
77
1
@RequestParam의 defaultValue가 blank 값도 처리하는 지 여부
0
112
1
postman으로 /request-body-json-v1 호출시 500 error
0
94
1
프론트엔드와 백엔드의 mvc, rest api에 대한 질문
0
77
1
모델의 역할과 계층 분리에 대한 이해 차이 + 추가질문
0
111
1
console log 출력 관련 질문입니다.
0
73
1
애플리케이션이 실행 되지 않습니다 ㅠㅠㅠ
0
137
1
html 변경하는 부분 적용 문제
0
100
1
한글 깨짐
0
76
2

