導航:首頁 > 編程語言 > 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優化線程相關的資料

熱點內容
老程序員編程步驟 瀏覽:303
物理去除加密軟體 瀏覽:225
匯編語言可調試編譯器 瀏覽:447
jpeg如何轉成pdf 瀏覽:841
微機室為什麼有伺服器 瀏覽:657
安卓手機怎麼打語音電話不斷網 瀏覽:458
單片機匯編頭文件 瀏覽:946
juniper命令行 瀏覽:68
程序員咨詢銷售工作怎麼樣 瀏覽:782
蘋果文件伺服器是什麼 瀏覽:180
企業透明加密軟體有監視功能嗎 瀏覽:494
桌面的運行命令 瀏覽:9
主流廠商伺服器維護流程是什麼 瀏覽:807
壓縮棉的被子先洗洗在用 瀏覽:242
批處理bat代碼和文件夾 瀏覽:298
怎麼交叉編譯tslib14 瀏覽:494
致程序員生產力飆升 瀏覽:762
程序員害怕下班嗎 瀏覽:108
鐵路漢宜線加密網實景效果圖 瀏覽:929
php工作難找 瀏覽:442