springboot链接MySQL线程池_SpringBoot异步及线程池配置

本文介绍了SpringBoot中如何使用@Async注解实现异步处理,并展示了如何自定义线程池ThreadPoolTaskExecutor。通过配置核心线程数、最大线程数和队列大小等参数,调整线程池的行为。示例中还包含了如何获取异步处理结果以及如何在UserService中调用异步服务。
摘要由CSDN通过智能技术生成

异步方法注解@Async

在SpringBoot中进行异步处理,可以使用异步注解@Async和@EnableAsync。

@Async注解表示异步,如:@Async("asyncServiceExecutor"),

后面的参数asyncServiceExecutor对应于自定义的线程池配置类(在以下例子中为ExecutorConfig) 中的线程池方法名

如果不写后面的参数,直接用@Async,则是使用默认的线程池。

Future实现类获取异步处理结果

如果想要获取异步处理的结果,可以通过Future接口的实现类调用get()方法获得。

Future接口的常见实现类有FutureTask。

在SpringBoot中,一般用 AsyncResult作为异步结果。

示例

注意:以下示例中的@Slf4j注解是属于lombok的注解,如果不想使用lombok,可以直接用常规的日志声明变量代替。

1.AsyncService如下:

@Component

@Slf4j

public class AsyncService {

/**

* @Async注解表示异步,后面的参数对应于线程池配置类ExecutorConfig中的方法名asyncServiceExecutor(),

* 如果不写后面的参数,直接使用@Async注解,则是使用默认的线程池

* Future为异步返回的结果。可以通过get()方法获取结果。

*

*/

@Async("asyncServiceExecutor")

public Future getDataResult( ){

log.info("开始异步处理");

String result="asyncResultTest";

return new AsyncResult(result);

}

}

线程池ThreadPoolTaskExecutor

SpringBoot中的线程池一般用ThreadPoolTaskExecutor 类。

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值