spring 多執行緒

2022-04-11 23:37:13 字數 896 閱讀 8729

一、threadpooltaskexecutor

threadpooltaskexecutor的配置在網上找了很多解釋沒找到,看了下threadpoolexecutor的配置,名字差不多,應該含義也差不多。只不過threadpooltaskexecutor對

threadpoolexecutor做了包裝。

執行緒的配置檔案:

corepoolsize: 執行緒池維護執行緒的最少數量

keepaliveseconds  執行緒池維護執行緒所允許的空閒時間

maxpoolsize   執行緒池維護執行緒的最大數量

queuecapacity 執行緒池所使用的緩衝佇列

當乙個任務通過execute(runnable)方法欲新增到執行緒池時:

l  如果此時執行緒池中的數量小於corepoolsize,即使執行緒池中的執行緒都處於空閒狀態,也要建立新的執行緒來處理被新增的任務。

l  如果此時執行緒池中的數量等於 corepoolsize,但是緩衝佇列 workqueue未滿,那麼任務被放入緩衝佇列。

l  如果此時執行緒池中的數量大於corepoolsize,緩衝佇列workqueue滿,並且執行緒池中的數量小於maximumpoolsize,建新的執行緒來處理被新增的任務。

l  如果此時執行緒池中的數量大於corepoolsize,緩衝佇列workqueue滿,並且執行緒池中的數量等於maximumpoolsize,那麼通過 handler所指定的策略來處理此任務。也就是:處理任務的優先順序為:核心執行緒corepoolsize、任務佇列workqueue、最大執行緒 maximumpoolsize,如果三者都滿了,使用handler處理被拒絕的任務。

l  當執行緒池中的執行緒數量大於 corepoolsize時,如果某執行緒空閒時間超過keepalivetime,執行緒將被終止。這樣,執行緒池可以動態的調整池中的執行緒數。

Spring與多執行緒

還是用實際的專案來舉個栗子。作為資料服務,入口是乙個webservices的介面,這裡因為歷史原因,還是採用soap方式。入口如下 webmethod public feedresult send nocpacket nocpacket 這裡採用生產者和消費者的模式,其中的const.nocqueu...

Spring系列(五)Spring的多執行緒

spring通過任務執行器 taskexecutor 來實現多執行緒和併發程式設計。使用thredpooltaskexecutor可以實現基於執行緒池的taskexecutor。為了實現非同步任務,可以在配置類中通過 enable開啟對非同步任務的支援,並通過實際執行的bean的方法使用 async...

spring多執行緒事務控制

主要測試內容是兩個執行緒同時對乙個表操作時,後乙個ccc類中的select之後commit,是否會對aaa類的insert操作rollback產生影響。測試結果是互不影響。spring xml 配置檔案 xmlns xsi xsi schemalocation spring beans 3.0.xs...