做者: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框架在多線程方面的強大之處!!