Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
并行请求由一个Spring单例bean并行/顺序处理_Spring_Singleton_Stateless - Fatal编程技术网

并行请求由一个Spring单例bean并行/顺序处理

并行请求由一个Spring单例bean并行/顺序处理,spring,singleton,stateless,Spring,Singleton,Stateless,我已参考了这些链接,但仍有疑问 我的问题/疑问:并行请求是否会由一个Spring singleton bean并行/顺序处理[因为这只是一个对象/实例],例如@Controller、@Service,甚至在多核处理器上(并行线程执行能力) 希望不是,但它是如何工作的。 从第一个链接中,我得到了一些理解-一个singleton bean对象,这个singleton bean的一个字节码实例-它由线程堆栈独立访问-但不能corelate在常见情况下,Spring singleton类由不同的线程

我已参考了这些链接,但仍有疑问

我的问题/疑问:并行请求是否会由一个Spring singleton bean并行/顺序处理[因为这只是一个对象/实例],例如@Controller、@Service,甚至在多核处理器上(并行线程执行能力)

希望不是,但它是如何工作的。

从第一个链接中,我得到了一些理解-一个singleton bean对象,这个singleton bean的一个字节码实例-它由线程堆栈独立访问-但不能corelate

在常见情况下,Spring singleton类由不同的线程并行处理

Springbean是存储在Spring上下文中的简单java对象(可以包装)。以及如何并行处理每个简单的java对象

在某些特殊情况下,可能会按顺序处理它,例如,当您使用某些锁定、同步方法和其他阻塞语句时

并行请求是否由一个并行/顺序处理 Spring单例bean,例如@Controller、@Service

@Controller
@Service
的请求将由J2EE容器创建的不同线程并行处理。
J2EE容器可以创建的线程数量仅限于内存可用性

单个对象可以服务任意数量的请求(受上述可用内存的限制)

为了更好地理解这个概念,您可以使用Spring MVC的
DispatcherServlet
(或任何具有默认行为的
Servlet
),它将是由Servlet容器创建的单例对象,同时每个Servlet可以并发处理多个请求(来自用户/客户端)

因此,如果您想要控制单例bean对象(服务/
控制器
/
DAO
,无论哪个对象)要处理的请求数量,则需要限制请求,或者只需将同步添加到bean的方法(或关键部分)。但是,一般来说,不建议这样做,除非您遇到一些问题或处理原子性(将多个事务作为单个工作单元处理)