zoukankan      html  css  js  c++  java
  • ThreadPoolTaskExecutor异步线程池

    一、在spring配置文件中配置

    <!-- 异步线程池 -->  
        <bean id="threadPool" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">  
          <!-- 核心线程数  -->  
          <property name="corePoolSize" value="3" />  
          <!-- 最大线程数 -->  
          <property name="maxPoolSize" value="20" />  
          <!-- 队列最大长度 >=mainExecutor.maxSize -->  
          <property name="queueCapacity" value="1000" />  
          <!-- 线程池维护线程所允许的空闲时间 -->  
          <property name="keepAliveSeconds" value="300" />  
          <!-- 线程池对拒绝任务(无线程可用)的处理策略 -->  
          <property name="rejectedExecutionHandler">  
            <bean class="java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy" />  
          </property>  
        </bean>

    二、在service类中注入
    @Autowired
    private ThreadPoolTaskExecutor threadPool;

    三、service方法中使用

    public void doSomething(){
        threadPool.execute(new Runnable() {
    
                @Override
                public void run() {
                    //异步执行耗时的业务任务
                }
            });
    }

    完成


    备注:如果要想得到耗时任务的返回结果可以如下使用:

    String resp="";
    Future<String> task = threadPool.submit(new Callable<String>(){
    
                @Override
                public String call() throws Exception {
                    String callbackResp = HttpUtils.post(Url, params, "utf-8");
                    return callbackResp;
                }
            });
            try {   
            //注意task.get()会阻塞,直到返回数据为止,所以一般这样用法很少用
            resp=task.get();
            } catch (InterruptedException e) {
                e.printStackTrace();
            } catch (ExecutionException e) {
                e.printStackTrace();
            }
    
  • 相关阅读:
    python学习--函数
    python学习--变量
    python学习--运算符
    python学习--数据类型
    python学习--循环语句
    年轻不言失败
    《zero to one》读后感
    进程与线程
    JS----模块化
    js 一个等号"=" 二个等号"==" 三个等号"===" object.is()的区别
  • 原文地址:https://www.cnblogs.com/luleiitlife/p/8545021.html
Copyright © 2011-2022 走看看