Java 创建线程池,使用@EnableAsync实现多线程

本文介绍了如何在Spring Boot中利用@EnableAsync实现多线程,通过配置文件设置线程池,并在Service层使用@Async注解进行异步任务处理。测试表明,配置正确后,异步方法能够有效地并发执行,但需要注意异步方法的使用限制,如不能与异步方法同在一个类中,不能有返回值等。
摘要由CSDN通过智能技术生成

前言

        我们在使用多线程的时候,往往需要创建Thread类,或者实现Runnable接口,如果要使用到线程池,我们还需要来创建Executors,在使用spring中,已经给我们做了很好的支持。只要要@EnableAsync就可以使用多线程。使用@Async就可以定义一个线程任务。通过spring给我们提供的ThreadPoolTaskExecutor就可以使用线程池。

        默认情况下,Spring将搜索相关的线程池定义:要么在上下文中搜索唯一的TaskExecutor bean,要么搜索名为“taskExecutor”的Executor bean。如果两者都无法解析,则将使用SimpleAsyncTaskExecutor来处理异步方法调用。

配置文件

        配置文件我这里用的是yml文件管理的,增加的配置如下:

#线程池配置
executor:
  config:
    thread-pool:
      core-pool-size: 5  #核心线程数
      max-pool-size: 30  #最大线程数
      queue-capacity: 99999  #队列大小

配置类

        @Configuration用于定义配置类,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。

        @EnableAsync开始对异步任务的支持 。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老徐··

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值