网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

详解SpringBoot如何使用多线程-创新互联

小编这次要给大家分享的是详解Spring Boot如何使用多线程,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。

网站设计制作、成都网站设计,成都做网站公司-成都创新互联公司已向超过千家企业提供了,网站设计,网站制作,网络营销等服务!设计与技术结合,多年网站推广经验,合理的价格为您打造企业品质网站。

前言

本文带你快速了解@Async注解的用法,包括异步方法无返回值、有返回值,最后总结了@Async注解失效的几个坑。

在 SpringBoot 应用中,经常会遇到在一个接口中,同时做事情1,事情2,事情3,如果同步执行的话,则本次接口时间取决于事情1 2 3执行时间之和;如果三件事同时执行,则本次接口时间取决于事情1 2 3执行时间最长的那个,合理使用多线程,可以大大缩短接口时间。那么在 SpringBoot 应用中如何优雅的使用多线程呢?

Don't bb, show me code.

快速使用

SpringBoot应用中需要添加@EnableAsync注解,来开启异步调用,一般还会配置一个线程池,异步的方法交给特定的线程池完成,如下:

@Configuration
@EnableAsync
public class AsyncConfiguration {

 @Bean("doSomethingExecutor")
 public Executor doSomethingExecutor() {
  ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
  // 核心线程数:线程池创建时候初始化的线程数
  executor.setCorePoolSize(10);
  // 大线程数:线程池大的线程数,只有在缓冲队列满了之后才会申请超过核心线程数的线程
  executor.setMaxPoolSize(20);
  // 缓冲队列:用来缓冲执行任务的队列
  executor.setQueueCapacity(500);
  // 允许线程的空闲时间60秒:当超过了核心线程之外的线程在空闲时间到达之后会被销毁
  executor.setKeepAliveSeconds(60);
  // 线程池名的前缀:设置好了之后可以方便我们定位处理任务所在的线程池
  executor.setThreadNamePrefix("do-something-");
  // 缓冲队列满了之后的拒绝策略:由调用线程处理(一般是主线程)
  executor.setRejectedExecutionHandler(new ThreadPoolExecutor.DiscardPolicy());
  executor.initialize();
  return executor;
 }
}

另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文名称:详解SpringBoot如何使用多线程-创新互联
网页路径:http://bjjierui.cn/article/djssso.html

其他资讯