Spring中线程池的应用 (二)

2014-11-24 11:01:06 · 作者: · 浏览: 1

值得注意的事有两点
1, taskExecutor.execute(new ThreadTransCode()); 激活的线程都是守护线程,主线程结束,守护线程就会放弃执行,这个在业务中式符合逻辑的,在单元测试中为了看到执行效果,需要自行阻塞主线程。
2, taskExecutor.execute(new ThreadTransCode()); 的执行也不是完全安全的,在执行的过程中可能会因为需要的线程查过了线程队列的容量而抛出运行时异常,如有必要需要捕获。

(2)spring的配置


[html] < xml version="1.0" encoding="UTF-8" >







































< xml version="1.0" encoding="UTF-8" >































(3)调用


[java] ApplicationContext appContext = new ClassPathXmlApplicationContext("applicationContext.xml");
MainExecutor te = (MainExecutor)appContext.getBean("taskExecutorExample");
te.printMessages();
System.out.println("11111111111111111111111");

ApplicationContext appContext = new ClassPathXmlApplicationContext("applicationContext.xml");
MainExecutor te = (MainExecutor)appContext.getBean("taskExecutorExample");
te.printMessages();
System.out.println("11111111111111111111111");


(4)效果

\