1. 程式人生 > >Spring ThreadPoolTaskExecutor執行緒池

Spring ThreadPoolTaskExecutor執行緒池

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裡面沒問題。