gpt4 book ai didi

java - tomcat 7 中的应用程序线程

转载 作者:行者123 更新时间:2023-11-28 22:37:13 25 4
gpt4 key购买 nike

我有一个 web 服务,它依次调用其他 10 个 web 服务,它会导致更高的响应时间。所以我使用 ExecutorService 通过 spring servlet.xml 配置生成线程,如下所示

<bean id="executorService" class="org.springframework.scheduling.concurrent.ThreadPoolExecutorFactoryBean" scope="prototype">
<property name="corePoolSize" value="3" />
<property name="maxPoolSize" value="4" />
<property name="keepAliveSeconds" value="5" />
</bean>

我正在监视 JvisualVM 中的线程并注意到始终有 3 个 executorservices 线程。我试图了解这是否会为每个通过的请求旋转 3 个线程,或者所有请求都会尝试使用配置的相同 3 个 corePoolSize。

如果所有请求都将使用 3 个线程,则应增加核心池大小(如果是,增加到多少)?

另外,什么时候应该关闭执行器服务?

我不熟悉这种方法,有人可以帮助我了解它是如何工作的吗?

最佳答案

默认情况下,Spring 中的 Bean 是单例的,因此您只有一个 executorService 实例,它管理一个大小为 3-4 的线程池。

创建池时,它将启动 3 个线程,然后空闲直到需要。如果需要更多线程,它将最多使用 4 个线程,因此只比最初创建的线程多 1 个。

这与有多少传入请求尝试使用该池无关。

关于java - tomcat 7 中的应用程序线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32108311/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com