3 2 7 優化執行緒池執行緒數量

2022-09-05 18:00:14 字數 452 閱讀 3045

執行緒池的大小對系統的效能有一定的影響。過大或者過小的執行緒數量都無法發揮到最優的系統效能。只要避免執行緒池的過大或者過小,那麼一把來說執行緒池對系統的效能影響不大。

我經常參考的執行緒池大小的經驗公式:

ncpu=cpu的數量

ucpu=目標cpu的使用率,0<= ucpu<=1

w/c=等待的時間與計算的時間的比率

nthreads=ncpu*ucpu*(1+w/c)

例如:我的電腦是8核,電腦可用使用率為60%,執行緒執行時間為6s,空閒等待時間為3s

runtime.getruntime().**ailableprocessors()這個 可以得出當前電腦的核心

那麼我就可以得出 8*0.6*(1+3/6)=7.2 也就是說 我的執行緒池數量為7,系統效能可以達到最優。

當然這個只是推算,還要估測系統處理器和其他硬體水準,這個因人而異。

執行緒池執行緒數量優化設計

實際編碼過程中,不能一味的只進行執行緒池優化效能而不關注具體的設計細節。執行緒池執行緒數量需要根據實際專案中任務數量等進行乙個估算,使得系統的設計效能趨近於我們所想的方向,而不是隨便給乙個數值,但是不進行系統的最大瓶頸的控制。廢話不多說 轉個比較詳細的效能估算思路 jdk1.5中引入了強大的conc...

多執行緒 設定執行緒池執行緒數量

一 需求 web server通常有個配置,最大工作執行緒數,後端服務一般也有個配置,工作執行緒池的執行緒數量,這個執行緒數的配置不同的業務架構師有不同的經驗值,有些業務設定為cpu核數的2倍,有些業務設定為cpu核數的8倍,有些業務設定為cpu核數的32倍。工作執行緒數 的設定依據是什麼,到底設定...

JUC 執行緒池數量

去乙個網頁抓資料儲存到資料庫中,這個過程也就1秒中吧 執行緒池fixedthreadpool配製多少合適?如果是cpu密集型應用,則執行緒池大小設定為n 1 n為cpu的核數 如果是io密集型應用,則執行緒池大小設定為2n 1 這裡去乙個網頁抓資料 需要建立http請求響 io 應後拿到資料,然後再...