導航:首頁 > 編程語言 > java優化線程

java優化線程

發布時間:2025-04-28 04:07:12

『壹』 java多線程MasterWorker模式如何在高並發情況下優化

你說的Master指的是java的線程池吧,我之前做過一個項目,因為項目在內網拿不出來,我給你說一下我那次的經驗。

幾個關鍵點:

1、java線程池:使用java提供的ThreadPoolExecutor類構造主池,再構造一個輔池(輔池的作用在於當主池進入拒絕策略的時候,可以啟動輔池,幫助主池分擔一部分線程,或者在主池shutdown的瞬間又有任務進來,也會走到拒絕策略,此時可以啟動輔池處理這些線程,一般情況下輔池不會啟動),排隊策略使用LinkedBlockingQueue隊列。

2、單例模式:利用spring的IOC容器的單例性,每次取線程池時,從IOC容器中注入。創建一個組件類BatPool(spring組件默認為單例),裡面再使用單例模式創建線程池,單例中的單例,保證單例性:


@Component

classBatPool{

privateThreadPoolExecutor mainPool;

ThreadPoolExecutor create(){

if(mainPool== null){

retrun new ThreadPoolExecutor();

}else{

retrunmainPool;

}

...

}


業務中:

@Autowired

BatPool batPool;

ThreadPoolExecutor pool =batPool.create();

...


線程池的配置你自己參考網上吧

這樣在業務中,每次取到的池都是同一個池,不會多次創建。

如果你沒有使用spring的話,我再想想辦法怎麼實現全局的單例模式

閱讀全文

與java優化線程相關的資料

熱點內容
硬碟加密不加密區別 瀏覽:958
築業資料加密鎖哪裡有賣的 瀏覽:682
javaforeach數組 瀏覽:368
安卓如何開發區塊鏈 瀏覽:601
如何封裝自解壓的exe 瀏覽:799
雲主機雲伺服器怎樣收費 瀏覽:925
簡述編譯程序各部分的功能 瀏覽:720
ij編譯器下載 瀏覽:513
vmware鏈接區域網伺服器地址 瀏覽:425
為什麼安卓耳機轉接不可數據傳輸 瀏覽:811
高德地圖總是顯示離線數據解壓中 瀏覽:881
淘二手車最好的app是哪個 瀏覽:121
一句話描述加密貨幣的前100名 瀏覽:787
python二維集合賦值 瀏覽:147
android圖形化開發 瀏覽:949
易語言rc4演算法 瀏覽:552
源碼項目網 瀏覽:819
批量加密發送工資條 瀏覽:474
php抓取遠程圖片到本地 瀏覽:619
社保人證app在哪裡下載 瀏覽:135