zoukankan      html  css  js  c++  java
  • spring启动异步线程

     大纲:

    1. spring启动异步线程
    2. spring配置线程池

    一、spring启动异步线程

    spring启动异步线程方法就是在方法上加上注解@Async,然后启动类或配置类上加上注解@EnableAsync

    @Service
    public class TestService {
        @Async
        public Future exec(){
            Future future = new AsyncResult("dududududu");
            System.out.println(Thread.currentThread().getName()+111111);
            return future;
        }
    }

    这种方式在每次执行这个方法的时候都会启动一个线程去执行这个方法。Future可以返回执行结果,这个方法也可以返回void。

    二、spring配置线程池

    @Configuration
    @EnableAsync
    public class Config {
        @Bean
        public Executor taskExecutor() {
            ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
            executor.setCorePoolSize(2);
            executor.setMaxPoolSize(3);
            executor.setQueueCapacity(200);
            executor.setKeepAliveSeconds(60);
            executor.setThreadNamePrefix("aaaaaa-");
            executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
            return executor;
        }
    
        @Bean
        public Executor taskExecutor1() {
            ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
            executor.setCorePoolSize(2);
            executor.setMaxPoolSize(3);
            executor.setQueueCapacity(200);
            executor.setKeepAliveSeconds(60);
            executor.setThreadNamePrefix("bbbbbbb-");
            executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
            return executor;
        }
    }

    上面的配置文件配置了2个线程池

    应用的时候在@Async的值里配置上线程池的名称就可以了

    @Service
    public class TestService {
        @Async("taskExecutor1")//使用上面配置的taskExecutor1线程池
        public Future exec(){
            Future future = new AsyncResult("dududududu");
            System.out.println(Thread.currentThread().getName()+111111);
            return future;
        }
    }
  • 相关阅读:
    Java枚举和反射
    Java网络编程
    django 中文乱码问题
    chrome 开发人员工具
    js 编码问题
    js 复制内容到剪切板
    网页获取页面上选择的内容
    git命令
    Jquery和Javascript对象之间的转换
    Spring Data Elasticsearch
  • 原文地址:https://www.cnblogs.com/liuboyuan/p/11584016.html
Copyright © 2011-2022 走看看