Spring ThreadPoolTaskExecutor執行緒池
阿新 • • 發佈:2019-01-23
1:首先配置執行緒池(在spring配置檔案中配置,我是在applicationContext.xml中配置的)
<!-- 非同步執行緒池 -->
<bean id="taskExecutor"
class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<!-- 核心執行緒數 -->
<property name="corePoolSize" value="5" />
<!-- 最大執行緒數 -->
<property name="maxPoolSize" value="10" />
<!-- 佇列最大長度 >=mainExecutor.maxSize -->
<property name="queueCapacity" value="100" />
<!-- 執行緒池維護執行緒所允許的空閒時間 -->
<property name="keepAliveSeconds" value="3000" />
<!-- 執行緒池對拒絕任務(無執行緒可用)的處理策略 -->
<property name="rejectedExecutionHandler">
<bean class="java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy" />
</property>
</bean>
2:就是注入taskExecutor並且使用
直接把執行緒丟到執行緒池中,執行緒池會控制何時啟動它,會自動呼叫它的RUN方法
3:執行緒介面(ResponseQueueThread)
到此結束,哈哈,很簡單,歡迎各種吐槽,有更好的還請推薦,thank you!謝謝
後面我用JUNIT做測試發郵件發現有點問題,感覺還沒呼叫spring結束就沒發出去,後面我手動調run方法又好了,然後正規寫道spring裡面沒問題。