Spring线程池与JDK线程池配置

        在web开发项目中,处理任务的线程池或多或少会用到。如果项目中使用到了spring,使用线程池时就可以直接使用spring自带的线程池了。下面是Spring线程池与JDK线程池的使用实例,做个参考吧。

//直接在代码中使用
	public static void main(String[] args) throws InterruptedException, ExecutionException {
	    //JDK线程池示例
		ExecutorService threadPool = Executors.newFixedThreadPool(5);
		CompletionService
   
   
    
     executor = new ExecutorCompletionService
    
    
     
     (threadPool);
		Future
     
     
      
       future = executor.submit(new TaskHandle());
		System.out.println(future.get());
		threadPool.shutdown();
		
		//Spring线程池示例
		FutureTask
      
      
       
        ft = new FutureTask
       
       
         (new TaskHandle()); ThreadPoolTaskExecutor poolTaskExecutor = new ThreadPoolTaskExecutor(); poolTaskExecutor.setQueueCapacity(10); poolTaskExecutor.setCorePoolSize(5); poolTaskExecutor.setMaxPoolSize(10); poolTaskExecutor.setKeepAliveSeconds(5); poolTaskExecutor.initialize(); poolTaskExecutor.submit(ft); System.out.println(ft.get()); poolTaskExecutor.shutdown(); /** * 把以下配置加到spring的配置文件中: * 
         
         
          
           
          
          
           
          
          
           
          
          
           
          
         * */ //在程序中这样调用方法 ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); ThreadPoolTaskExecutor contextPoolTaskExecutor = (ThreadPoolTaskExecutor)ctx.getBean("taskExecutor"); System.out.println(contextPoolTaskExecutor.getActiveCount()); //如果启用了spring的注入功能,则可以在被spring管理的bean方法上添加“@Async”即可。 } /** * 处理任务的类,为了方便大家观看,我把这个类写到当前类中了。 * @author mengfeiyang * */ private static class TaskHandle implements Callable 
        
          { public String call() throws Exception { return Thread.currentThread().getName(); } } 
         
       
      
      
     
     
    
    
   
   


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
JDK线程池Spring线程池都是用于管理和执行多线程任务的工具。它们有一些相似之处,但也有一些区别。 JDK线程池Java标准库中提供的一个线程池实现,位于`java.util.concurrent`包下。它提供了ThreadPoolExecutor类来创建和管理线程池JDK线程池的主要特点包括: 1. 可以自定义线程池的大小和线程池的工作队列。 2. 提供了各种任务调度策略,例如固定大小线程池、缓存线程池、单线程池等。 3. 支持提交Callable和Runnable类型的任务,并返回Future对象以获取任务的执行结果。 4. 提供了一些监控和管理线程池的方法,例如获取线程池状态、关闭线程池等。 Spring线程池是在Spring框架中提供的一个对JDK线程池的封装。它基于JDK线程池,并提供了更高级别的功能和更方便的配置选项。Spring线程池的特点包括: 1. 可以通过Spring配置文件或注解来配置和管理线程池。 2. 支持异步方法调用,可以将某个方法调用标记为异步执行,从而将其放入线程池中执行。 3. 可以通过配置线程池的属性来控制并发执行的线程数量、线程池的队列大小、任务拒绝策略等。 4. 提供了对任务执行状态的监听和处理机制。 总的来说,JDK线程池Java标准库提供的一种多线程任务管理工具,而Spring线程池是在JDK线程池基础上提供的更高级别的封装,方便在Spring应用中使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值