关于Spring封装Java线程池的理解

项目用到了TaskExecutor,我看有的是通过spring bean配置的.有的是通过配置的方式,于是看了下官方文档,官方文档(好像是第30.5章)上写的很清楚,里面的参数的含义等东东,

<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
	<!-- 核心线程数 -->	 
	<property name="corePoolSize" value="${task.core_pool_size}" />
	<!-- 最大线程数 -->  
	<property name="maxPoolSize" value="${task.max_pool_size}" />
	<!-- 队列最大长度 -->
	<property name="queueCapacity" value="${task.queue_capacity}" />
	<!-- 线程池维护线程所允许的空闲时间,默认为60s -->
	<property name="keepAliveSeconds" value="${task.keep_alive_seconds}" />
</bean>
<!-- 注解式 -->
<task:annotation-driven />
<!-- 或则 -->
   <task:executor id="asyncTaskExecutor"
                   pool-size="${executor.pool.size}"
                   queue-capacity="${executor.queue.capacity}"
                   keep-alive="500"/>

至于SpringMVC整合TaskExecutor线程池的配置/使用

一、配置jdbc.properties添加:

#------------ Task ------------
task.core_pool_size=5
task.max_pool_size=50
task.queue_capacity=1000
task.keep_alive_seconds=60

二、配置Spring的applicationContext.xml添加:
  
就是上面的配置

三、在实现层Impl声明并注入:

       

@Resource(name = "taskExecutor")
    private TaskExecutor taskExecutor;

四、在方法里调用:

	try {
			taskExecutor.execute(new Runnable() {
				public void run() {
					//这里编写处理业务代码
					
				}
			});
		} catch (Exception e) {
			e.printStackTrace();
		}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值