2016-11-13 2 views
0

내가 이러한 링크를 대해 참조하지만 여전히 another less relevant link병렬 요청


concurrent request to singleton bean
의심의 여지가있다 하나 봄 싱글 톤 빈에 의해 순차적 병렬/처리 될 내 Q/의심의 여지 : 병렬 요청은 하나의 병렬/순차 처리됩니다 스프링 싱글 톤 빈 [이것은 단지 하나의 객체/인스턴스 임] 예 @ 컨트롤러, 멀티 코어 프로세서 (병렬 스레드 실행 기능)에서도 @Service

바라기를 원하지만 어떻게 작동하는지. 하나의 싱글 콩 개체,이 singeton 콩의 바이트 코드의 한 인스턴스 - - 독립적 스레드 스택에 액세스 -하지만 일반적인 경우 귀하의 봄 싱글에서

답변

0

을 corelate 할 수없는 첫 번째 링크에서
, 나는 어떤 이해를 가지고 클래스는 다른 thread에 의해 병렬 처리됩니다.

봄 콩 스프링 컨텍스트에 저장하는 간단한 자바 객체 (포장 가능)입니다. 그리고이 모든 객체가 어떻게 병렬로 처리 될 수 있는지에 대한 간단한 Java 객체.

일부 잠금을 사용하거나 메서드 및 기타 차단 문을 동기화하는 경우와 같이 일부 특수한 경우에는 순차적으로 처리 할 수 ​​있습니다.

0

병렬 요청은 하나씩 병렬/순차 처리 될 것인가 스프링 싱글 톤 빈. 예 : @Controller, @Service? @Controller위한

요청은 @Service는 J2EE 컨테이너에 의해 생성 된 다른 스레드에 의해 병렬 처리된다. J2EE 컨테이너에서 생성 할 수있는 스레드 수는 메모리 가용성으로 제한됩니다.

단일 개체는 원하는 수의 요청을 처리 할 수 ​​있습니다 (위에서 언급 한 것처럼 사용 가능한 메모리로 제한됨).

가 취할 수있는,이 개념을 더 잘 이해하려면 스프링 MVC의 DispatcherServlet (또는 기본 동작과 어떤 Servlet) 각각의 서블릿은 동시에 여러 요청을 처리 할 수있는 동시에 서블릿 컨테이너에 의해 생성 된 단일 객체가 될 것이다, (사용자/고객으로부터 오는). 당신이 요청의 수를 제어하기를 원한다면

그래서, 다음 요청이 스로틀하거나 방법에 동기화를 추가 할 필요가 싱글 톤 빈 개체 (중 객체 Service/Controller/DAO)에 의해 처리 (또는 수 중요 섹션). 그러나 일반적으로, 어떤 문제가 있거나 원 자성 (하나의 작업 단위로 여러 트랜잭션을 처리)을 처리하지 않는 한 일반적으로이 방법은 권장되지 않습니다.