当前位置: 首页 > 知识库问答 >
问题:

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

终安和
2023-03-14

我已经参考了这些链接,但仍然怀疑对singleton bean的并发请求是另一个不太相关的链接

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

希望不是,但它是如何工作的。
从第一个链接开始,我了解了一些东西——一个singleton bean对象,这个singleton bean的一个字节码实例——它是由线程堆栈独立访问的——但不能进行corelate

共有2个答案

平和雅
2023-03-14

通常情况下,Spring单例类由不同的线程并行处理。

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

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

贺飞星
2023-03-14

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

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

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

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

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

 类似资料:
  • 问题内容: 我有一个关于单例bean如何详细处理并发请求的问题。 我想要有关单例bean如何处理并发请求以及系统处理器如何看到这些请求的完整详细信息。 我已经研究了有关在线处理系统处理器中并发请求的问题。他们说处理器本身有一个调度程序,调度程序将决定处理哪个请求。 好的。如果假设我有多个核心处理器,那么调度程序如何处理并发请求? 谁能向我解释有关单例bean如何为JVM和系统中的并发请求提供服务的

  • 问题内容: 我正在使用Node.js运行服务器,并且需要从正在运行的另一台服务器()请求数据。我需要向数据服务器发出许多请求(〜200)并收集数据(响应大小从〜20Kb到〜20Mb不等)。每个请求都是独立的,我想将响应保存为以下形式的一个巨大数组: 请注意,项目的顺序并不重要,理想情况下,它们应该以数据可用的顺序填充数组。 现在,当运行该程序时,它将显示: 现在,由于文件的大小如此可变,我期望它可

  • 我正在使用Java VertX框架,并尝试使用VertX WebClient和一个简单的HTTP请求加载多个JSON对象。我想并行地做这件事,这样可以加快进程。 我有一个endpoint对象: 在另一个类中,我有以下应该并行处理的函数(源代码): 我不知道如何继续下去。VertX WebClient强制我使用异步处理程序,这意味着我不能直接返回JsonObject。

  • 我正在实现一个分页器(在Java),它应该允许并行访问。 我有以下测试用例(测试在Groovy中,带有Spock): 此testcase失败,出现以下错误: 拆分器具有 当我不使用并行时,代码可以工作。所以我不理解: 如果设置了,流框架是否应该保证顺序,并且应该在使用并行生成的块时对结果进行排序?如果是,为什么不在我的情况下排序? 还是我的实现中有错误,必须按照给定的顺序拆分?(当前我在打开页面的

  • 类D 主要方法是 Bean配置文件是 程序的输出为:

  • 我正在使用Spring Boot构建一个RESTful web服务。我的IDE是Eclipse Oxygen。 这里是我的控制器代码: 我的控制台输出是: 控制台输出显示每5秒调用一次控制器。但我每隔两秒就发送一次请求。 是否可以接受来自同一会话的并发多个请求? 谢谢!