首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在spring引导中优化异步线程

如何在spring引导中优化异步线程
EN

Stack Overflow用户
提问于 2022-05-20 07:23:18
回答 1查看 542关注 0票数 1

我在嵌入式tomcat中运行Spring应用程序。大约有50个并发HTTP会话,每个会话都由5-7并发运行异步后端调用(@异步)提供服务。Tomcat或Spring没有特定的线程配置。

我发现长时间运行的线程(不管是Tomcat还是异步调用)严重降低了其他线程的性能。例如,如果我使用CR生成报告,这需要20-40秒,那么大多数异步线程看起来都瘫痪了。

如何优化代码和配置以解决性能问题?

EN

回答 1

Stack Overflow用户

发布于 2022-05-20 20:56:17

根据您的描述,您的配置可能会出现几个瓶颈。但其中之一可能是系统中可用的线程数。从这里你能做的最好的事情就是分析你的应用程序,检查哪些线程是可用的,它们是如何使用的,它们在哪里被阻塞。

此外,假设线程数是问题所在,那么当您说

Tomcat或Spring没有特定的线程配置。

如果这意味着您正在默认的ThreadPoolExecutor上运行,那么您应该检查如何配置线程池的文档默认值,并相应地进行缩放。

@Async注释还允许您指定要使用哪个bean Executor

代码语言:javascript
运行
复制
// use default Executor
@Async
public void asyncMethodUsingDefaultExecutor() {}

// use of Executor with qualifier specificExecutorBeanQualifier 
@Async("specificExecutorBeanQualifier")
public void asyncMethodUsingSpecificExecutor() {}

您可以使用它来使用一个分离的线程池来处理长期运行的任务,并为其他任务处理另一个任务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72315030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档