Spring Boot 配置异步Async方法

  1. 注解启动类
@EnableAsync
@SpringBootApplication
public class LocustRunnerApplication {

    public static void main(String[] args) {
        SpringApplication.run(LocustRunnerApplication.class, args);
    }
}

  1. 添加线程池配置
@Configuration
public class AsyncConfig {

    @Bean
    public Executor asyncExecutor() {
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        executor.setCorePoolSize(4);
        executor.setMaxPoolSize(8);
        executor.setQueueCapacity(200);
        executor.setThreadNamePrefix("LocustTask-");
        executor.initialize();
        return executor;
    }
}
  1. 标注异步方法-不带返回值
@Async
public void asyncMethod() {
    try {
        for (int i = 0; i < 5; i++) {
            System.out.println(Thread.currentThread().getName() + " asyncMethod: " + i);
            Thread.sleep(1000);
        }
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
}
  1. 标注异步方法-不带返回值
@Async
public Future<String> asyncMethodWithReturn() {
    try {
        for (int i = 0; i < 5; i++) {
            System.out.println(Thread.currentThread().getName() +  " asyncMethodWithReturn: " + i);
            Thread.sleep(1000);
        }
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    return new AsyncResult<>(Thread.currentThread().getName() + " asyncMethodWithReturn: done");
}

线程池的调用过程

  1. 核心线程池未满时: 接收任务,创建线程并执行该任务。
  2. 核心线程池已满时: 接收任务,任务进入等待队列等待。
  3. 核心线程池满且等待队列也满时: 接收任务,并创建线程执行该任务。
  4. 核心线程满,等待队列满且最大线程池也满时: 接收任务,按丢弃策略处理该任务。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 本文是我自己在秋招复习时的读书笔记,整理的知识点,也是为了防止忘记,尊重劳动成果,转载注明出处哦!如果你也喜欢,那...
    波波波先森阅读 11,789评论 4 56
  • 为什么使用线程池 当我们在使用线程时,如果每次需要一个线程时都去创建一个线程,这样实现起来很简单,但是会有一个问题...
    闽越布衣阅读 4,456评论 10 45
  • 农田上炊灯已熄灭 月亮被乌云匿住 萤火虫耗尽了热情 我还可以为你点一盏灯 再絮一遍相遇的时分 你来过 或者走过我的...
    双子_J阅读 258评论 5 2
  • 今天早醒,睡不着了,上来看到我这几天写的自嗨文,都被简叔收录到《简书产品改进》的专题中,有点意外,简叔应该是看到了...
    经济的草根阅读 482评论 0 20
  • 1 中国民谚说:“腊月二十四,掸尘扫房子”,眼看新春将至,却还未扫舍除尘,给房间来一次彻底的大清扫。 又是一日清晨...
    云浅浅阅读 860评论 0 2

友情链接更多精彩内容