Spring 线程池

一、java配置


@Configuration
@EnableAsync
public class AsyncConfig {
     /*
    此处成员变量应该使用@Value从配置中读取
     */
    private int corePoolSize = 10;
    private int maxPoolSize = 200;
    private int queueCapacity = 10;
    private int keepAliveSeconds= 30000;

    @Bean
    public Executor taskExecutor() {
		ThreadPoolTaskExecutor poolTaskExecutor = new ThreadPoolTaskExecutor();  
		//线程池所使用的缓冲队列  
		poolTaskExecutor.setQueueCapacity(queueCapacity);  
		//线程池维护线程的最少数量  
		poolTaskExecutor.setCorePoolSize(corePoolSize);  
		//线程池维护线程的最大数量  
		poolTaskExecutor.setMaxPoolSize(maxPoolSize);  
		//线程池维护线程所允许的空闲时间  
		poolTaskExecutor.setKeepAliveSeconds(keepAliveSeconds);  
		poolTaskExecutor.initialize();  
		return poolTaskExecutor;
    }
}

@Configuration:表明该类是一个配置类
@EnableAsync:开启异步事件的支持

然后在定时任务的类或者方法上添加@Async 。最后重启项目,每一个任务都是在不同的线程中

二、配置文件

<!-- 配置线程池 -->  
<bean id ="taskExecutor"  class ="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor" >  
    <!-- 线程池维护线程的最少数量 -->  
	<span style="white-space:pre">  </span><property name ="corePoolSize" value ="5" />  
    <!-- 线程池维护线程所允许的空闲时间 -->  
	<span style="white-space:pre">  </span><property name ="keepAliveSeconds" value ="30000" />  
    <!-- 线程池维护线程的最大数量 -->  
	<span style="white-space:pre">  </span><property name ="maxPoolSize" value ="1000" />  
    <!-- 线程池所使用的缓冲队列 -->  
	<span style="white-space:pre">  </span><property name ="queueCapacity" value ="200" />  
</bean>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值