spring对多线程的支持


1.准备

  • spring3以上版本.
  • 配置(采用java配置方式)
@Configuration            //java方式配置
@ComponentScan("cn.com")  //指定注解扫描的包
@EnableAsync              //开启对异步的支持
public class Config {
    //给定一个获取线程池对象的方法
    @Bean   //等同于在xml中配置bean
    public Executor getExecutor(){
        //创建线程池
        ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
        //设置线程池
        taskExecutor.setCorePoolSize(5);
        taskExecutor.setMaxPoolSize(10);
        taskExecutor.setQueueCapacity(25);  //设置线程池所使用的缓冲队列
        taskExecutor.initialize();
        //返回线程池
        return taskExecutor;
    }
}

2.创建多个线程任务

@Component  //ioc注入
public class SpringThread {
    @Async  //指定该方法为异步方法
    public void threadOne(){
        while(true){
            System.out.println("one: ThreadOne is run...");

            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
    @Async  //指定为异步方法
    public void threadTwo(){
        while(true){
            System.out.println("two: ThreadTwo is run...");

            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

3.测试

AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(Config.class);  //根据java配置类创建spring应用上下文对象
SpringThread st = ac.getBean(SpringThread.class);  
st.threadOne();
st.threadTwo();

文章作者: Bryson
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Bryson !
评论
 上一篇
下一篇 
  目录