做者:chszs,转载需注明。html
做者博客主页:http://blog.csdn.net/chszs
本文提供了三个Spring多线程开发的例子,由浅入深,因为例子一目了然,因此并未作过多的解释。诸位一看便知。
java
1)在Eclipse建立一个Java项目,我取名为SpringThreadDemo。
2)项目所需的JAR包如图所示:
git
下面开始。github
注:项目源码已经托管到GitHub,地址:https://github.com/chszs/SpringThreadDemo
spring
经过继承Thread建立一个简单的Java线程,而后使用@Component让Spring容器管理此线程,Bean的范围必须是prototype,所以每一个请求都会返回一个新实例,运行每一个单独的线程。多线程
Thread 1 is running.
Thread 2 is running.
Thread 4 is running.
Thread 5 is running.
Thread 3 is running.
Thread 2 is running again.
Thread 1 is running again.
Thread 5 is running again.
Thread 4 is running again.
Thread 3 is running again.框架
使用Spring的ThreadPoolTaskExecutor类建立一个线程池。执行线程无需受Spring容器的管理。
ide
注意这个Spring配置文件的位置,如图所示:this
Thread 1 is running.
Thread 2 is running.
Thread 3 is running.
Thread 4 is running.
Active Threads : 4
Thread 5 is running.
Active Threads : 5
Active Threads : 5
Active Threads : 5
Active Threads : 5
Active Threads : 5
Thread 4 is running again.
Thread 2 is running again.
Thread 3 is running again.
Thread 1 is running again.
Thread 5 is running again.
Active Threads : 0
做者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs
spa
本例仍然使用ThreadPoolTaskExecutor类,并使用@Component注释声明Spring的托管Bean。
下面的例子PrintTask2是Spring的托管Bean,使用@Autowired注释简化代码。
Thread 1 is running.
Thread 2 is running.
Active Threads : 2
Thread 3 is running.
Active Threads : 3
Active Threads : 3
Active Threads : 3
Active Threads : 3
Thread 1 is running again.
Thread 2 is running again.
Thread 3 is running again.
Active Threads : 1
Active Threads : 0
从这三个简单的实例中,你是否是发现了Spring框架在多线程方面的强大之处!!