首页 > 其他分享 >ThreadPoolTaskExecutor类

ThreadPoolTaskExecutor类

时间:2023-11-24 16:13:54浏览次数:28  
标签:String param 线程 taskExecutor ThreadPoolTaskExecutor public

ThreadPoolTaskExecutor类可用来创建线程池并添加任务

1     TreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
2     taskExecutor.setCorePoolSize(5);//设置核心线程数
3     taskExecutor.setMaxPollSize(10);//设置最大线程数
4     taskExecutor.setQueueCapacity(100);//设置队列容量
5     taskExecutor.initialize();//初始化线程池
使用TaskExecutor.execute()方法将任务提交到线程池中
1     taskExecutor.execute(new Runnable(){
2        @Override
3        public void run(){
4            //your task code here
5         }
6     });
可以使用submit()方法来提交Callable任务,并且可以获取返回值
1     Future<String> futureResult = taskExecutor.submit(new Callable<String>(){
2         @Override
3         public String call() throws Exception{
4             //your task code here
5             return "result";
6         }
7     });
获取任务执行结果
  String result = futureResult.get(); 
在应用程序关闭时,需要关闭线程池并等待所有任务完成
1     taskExecutor.shutdown();
2     taskExecutor.awaitTermination(30,TimeUnit.SECONDS);//等待所有任务完成,最多30秒
ThreadPoolTaskExecutor的execute方法如何传递参数
ThreadPoolTaskExecutor的execute方法可以通过实现Runnable或Callable接口,来传递参数
实现Runnale接口时,可以将参数定义为类的成员变量,然后在run方法中使用
 1 public class MyRunnable implements Runnable{
 2     private String param;
 3 
 4     public MyRunnable(String param){
 5         this.param = param;
 6     }
 7 
 8     @Override
 9     public void run(){
10         //使用param参数
11     }
12 }
13 
14 //在ThreadPoolTaskExecutor中执行
15 taskExecutor.executor(new MyRunnable("参数"));
实现Callable接口时,可以在泛型中指定返回值类型,并在call方法中返回结果。
public class MyCallable implements Callable<String>{
    private String param;

    public MyCallable(String param){
        this.param = param;
    }

    @Override
    public String call() throws Exception{
        //使用param参数
        return "结果";
    }
}

//在TheadPoolTaskExecutor中执行
Future<String> future = taskExecutor.submit(new MyCallable("参数"));
String result = future.get();//获取结果

 

标签:String,param,线程,taskExecutor,ThreadPoolTaskExecutor,public
From: https://www.cnblogs.com/qian135811/p/17853991.html

相关文章

  • SpringBoot用线程池ThreadPoolTaskExecutor异步处理百万级数据
    一、背景:    利用ThreadPoolTaskExecutor多线程异步批量插入,提高百万级数据插入效率。ThreadPoolTaskExecutor是对ThreadPoolExecutor进行了封装处理。ThreadPoolTaskExecutor是ThreadPoolExecutor的封装,所以,性能更加优秀,推荐ThreadPoolTaskExecutor。二、具体细节:2.1、配置app......
  • SpringBoot用线程池ThreadPoolTaskExecutor异步处理百万级数据
    微信公众号访问地址:SpringBoot用线程池ThreadPoolTaskExecutor异步处理百万级数据一、背景:    利用ThreadPoolTaskExecutor多线程异步批量插入,提高百万级数据插入效率。ThreadPoolTaskExecutor是对ThreadPoolExecutor进行了封装处理。ThreadPoolTaskExecutor是ThreadPoolExecut......
  • ThreadPoolTaskExecutor有什么特性?
    ThreadPoolTaskExecutor是SpringFramework中用来管理线程池的一个组件,基于Java的java.util.concurrent.ThreadPoolExecutor。以下是ThreadPoolTaskExecutor的一些重要特性:线程池大小配置:可以轻松设置线程池的核心和最大线程数,允许动态调整池大小。队列容量配置:任务可以......
  • ThreadPoolTaskExecutor自定义线程池的配置和使用
    ThreadPoolTaskExecutor自定义线程池的配置和使用线程池ThreadPoolTaskExecutor和ThreadPoolExecutor的区别ThreadPoolExecutor,这个类是JDK中的线程池类,继承自Executor,里面有一个execute()方法,用来执行线程,线程池主要提供一个线程队列,队列中保存着所有等待状态的线程,避免了创......
  • ThreadPoolTaskExecutor与ThreadPoolExecutor的区别及优缺点
    ThreadPoolTaskExecutor和ThreadPoolExecutor都是线程池的实现,但它们有以下几点区别:1.ThreadPoolTaskExecutor是Spring框架中编写的,它对ThreadPoolExecutor进行了封装,提供了更加丰富的功能,更易于在Spring中使用。而ThreadPoolExecutor是JDK中的实现。2.ThreadPoolTaskExe......
  • spring线程池ThreadPoolTaskExecutor
    1.自定义yml属性配置thread:pool:corePoolSize:5maxPoolSize:10queueCapacity:10keepAliveSeconds:1202.自定义线程池配置类@Configuration//配置类@EnableAsync//开线线程异步支持publicclassMyThreadPoolExecutor{@Autowiredprivat......
  • ThreadPoolTaskExecutor和ThreadPoolExecutor区别
    ThreadPoolExecutor是Java原生的线程池类,而ThreadPoolTaskExecutor是Spring推出的线程池工具  一、从核心参数看两者关系 ThreadPoolExecutor(java.util.concurrent) publicThreadPoolExecutor(intcorePoolSize,intmaximumPoolSize,......
  • SPRING ThreadPoolTaskExecutor示例
    0、前言当我们需要实现并发、异步等操作时,通常都会使用到ThreadPoolTaskExecutor。它是springcore包中的,而ThreadPoolExecutor是JDK中的JUC。ThreadPoolTaskExecutor是对ThreadPoolExecutor进行了封装处理。1、示例1.1、配置类importorg.springframework.context.annotation......
  • Spring线程池ThreadPoolTaskExecutor
    1.线程池配置@ConfigurationpublicclassTaskExecutorConfigimplementsAsyncConfigurer{@Value("${async.core.pool.size:10}")//核心线程数privateIn......
  • Java ThreadPoolTaskExecutor 线程池的常见问题
    JavaThreadPoolTaskExecutor线程池的常见问题 https://blog.csdn.net/weixin_43611528/article/details/123083314 重要参数corePoolSize:核心线程数,常开的线程数,默......