작성한 질문수
스프링 핵심 원리 - 기본편
스코프와 Provider
작성
·
402
0
도 똑같이 적용이 가능하나요?
로컬쓰레드로 로거를 구현하면 멀티스레드 구현이 불가능해진다는 단점이있는데,
request scope방식은 멀티스레드 safe한지 궁금하네요
강의 잘 듣고 있습니다 감사합니다.
답변 1
1
안녕하세요. log4j님
request scope방식은 멀티스레드 safe 합니다.
그 이유는 서블릿 컨테이너가 HTTP 요청 마다 별도의 쓰레드를 제공하기 때문인데요.
서블릿 컨테이너의 멀티쓰레드 관련해서 자세한 내용은 다음주 출시될 스프링 MVC 강의에서 설명드릴 예정입니다^^
감사합니다.
김영한님 안녕하세요,
답변을 뒤늦게 확인했습니다 ^^;
멀티스레드 safe하다는게 부분이 정확하게 이해가 안가서 다시 문의드립니다.
이 부분에서 멀티스레드 세이프하다는 건 여러 요청이 동시에 들어왔을 때 safe하다는 말씀이신거죠?
제가 문의드린 것은 서블릿이 스레드풀에서 제공한 스레드가 아니라,
하나의 http server request에 대해 서블릿에서 할당된 스레드에서 로직을 진행하다가 진행하다가 TaskExecutor 같은 별도의 스레드를 생성해서 전개할 때를 말하는 것이였습니다.
이럴때도 ThreadLocal과 유사하게 logger가 꼬이게 되는게 맞는거죠?
별도의 쓰레드를 생성해서 전개하게 되면 이미 서블릿 컨테이너가 제공하는 HTTP 처리를 위한 쓰레드가 아니기 때문에 이 부분이 보장되지 않습니다.
김영한님 안녕하세요,
답변을 뒤늦게 확인했습니다 ^^;
멀티스레드 safe하다는게 부분이 정확하게 이해가 안가서 다시 문의드립니다.
request scope방식은 멀티스레드 safe 합니다.
그 이유는 서블릿 컨테이너가 HTTP 요청 마다 별도의 쓰레드를 제공하기 때문인데요.
이 부분에서 멀티스레드 세이프하다는 건 여러 요청이 동시에 들어왔을 때 safe하다는 말씀이신거죠?
제가 문의드린 것은 서블릿이 스레드풀에서 제공한 스레드가 아니라,
하나의 http server request에 대해 서블릿에서 할당된 스레드에서 로직을 진행하다가 진행하다가 TaskExecutor 같은 별도의 스레드를 생성해서 전개할 때를 말하는 것이였습니다.
이럴때도 ThreadLocal과 유사하게 logger가 꼬이게 되는게 맞는거죠?