서블릿에서 해당 코드가 동기화 된 블록과 동기화 될 수 있음을 읽었습니다. 그러나 서블릿 컨테이너에는 인스턴스가 하나만있는 경우가 많지만 서블릿 컨테이너는 인스턴스 풀을 유지할 수 있습니다. 확실히 이것은 동기화 된 블록이 요청 스레드가 어떤 인스턴스를 선택할지 모르기 때문에 작동하지 않을 것입니다.여러 인스턴스가있는 서블릿 동기화
답변
서블릿 컨테이너는 아마도 공유 된 가변 데이터에 대한 액세스가 제대로 동기화 될 필요가 있다는 것을 의미 서블릿 코드를 실행하는 여러 스레드가있을 것입니다 의미 제공 요청에 대한 스레드 풀을 가지고 않습니다. 문제는 서블릿 단일 스레드를 만드는 방법을 경우
는 접근의 다음 하나가에서 SingleThreadModel 인터페이스를 구현하는 것입니다하지만 지금 이를 더 이상 사용되지 않습니다. 사양 (3.0)의
http://docs.oracle.com/javaee/1.4/api/javax/servlet/SingleThreadModel.html
2.2 절은 말합니다 :
분산 환경 (기본값)에서 호스팅되지 서블릿에 대한이 서블릿 컨테이너는 서블릿 당 하나 개의 인스턴스를 사용해야합니다 선언
따라서 컨테이너가 인스턴스 풀을 사용하는 경우 이는 사양을 위반 한 것입니다. 모든 서블릿 개발자가 여러 스레드가 동시에 서블릿에 액세스 할 수 있으므로 컨테이너가 그렇게하는 이유는 알 수 없으므로 서블릿은 스레드로부터 안전해야합니다.
감사합니다. 이것이 내가 기대하는 것입니다. 방금 Tomcat이 각 서블릿의 인스턴스 하나를 구현한다는 것을 알았습니다. 어느 것이 잘못되었거나 일부 컨테이너가 실제로 사양을 위반 한 것입니다. – Jon
"pool of threads"를 "pool of servlet instances"와 혼동했을 수도 있습니다. –
- 1. 여러 WebLogic 인스턴스가있는 log4j
- 2. Tomcat 서블릿 동기화
- 3. Tomcat에서 서블릿 동시성/동기화?
- 4. 여러 인스턴스가있는 창문에서 메도를 실행하십시오.
- 5. 여러 서블릿
- 6. 여러 인스턴스가있는 Windows 서비스의 프로젝트 설정
- 7. 여러 인스턴스가있는 프로토 타입의 개인 멤버
- 8. 여러 인스턴스가있는 Cloudfoundry에 Grails Quartz2 플러그인이 있습니까?
- 9. 다시 여러 IEntityChangeTracker 인터페이스 인스턴스가있는 경우
- 10. C#에서 여러 인스턴스가있는 플러그인을 어떻게 작성해야합니까?
- 11. 여러 개의 azure 인스턴스가있는 웹 배포
- 12. 여러 서버에서 파일 동기화
- 13. jquery 여러 이벤트를 동기화
- 14. 여러 브라우저 Windows 동기화
- 15. 여러 스레드 동기화
- 16. 여러 비동기 요청 동기화
- 17. 여러 서버에서 콘텐츠 동기화
- 18. 여러 MediaItems 동기화
- 19. 동기화 여러 관측 스트림
- 20. RX에서 여러 구독 동기화
- 21. 여러 flv와 동기화 문제
- 22. 여러 응용 프로그램 동기화
- 23. 여러 게시물 요청을 처리하는 서블릿
- 24. 인스턴스가있는 배열 루프, as3
- 25. 인스턴스가있는 속성의 필수 속성
- 26. 많은 인스턴스가있는 클래스에서 필드에 대한 동기화 또는 원자 변수를 사용하는 것이 더 좋습니까?
- 27. WinForm 응용 프로그램을 여러 인스턴스가있는 하나의 프로세스로 제한
- 28. IEventAggregator는 여러 번 구독합니까? 나는 다음과 같은 Microsoft.Practices.Prism.Events.IEventAggregator 인스턴스가있는 경우
- 29. 동일한 페이지에 여러 웹 파트 인스턴스가있는 SharePoint 웹 파트 저장소
- 30. Jquery 테이블 페이지 매김은 여러 인스턴스가있는 마지막 테이블에서만 작동합니다.
여기에 귀하의 질문은 무엇입니까? – milan
나는 BalusC에서이 두 가지 대답을 읽어야한다고 생각합니다. [서블릿은 어떻게 작동합니까?] (http://stackoverflow.com/questions/3106452/how-do-servlets-work-instantiation-session-variables-and-multithreading/ 3106909 # 3106909) 및 [Servlet의 인스턴스] (http://stackoverflow.com/questions/2183974/difference-each-instance-of-servlet-and-each-thread-of-servlet-in-servlets/2184147#2184147) –
고마워요, 그 2 답변에서 합의는 서블릿 당 1 인스턴스가 사용되므로 동기화가 작동합니다. – Jon