去乙個網頁抓資料儲存到資料庫中,這個過程也就1秒中吧 ,執行緒池fixedthreadpool配製多少合適?
如果是cpu密集型應用,則執行緒池大小設定為n+1 n為cpu的核數
如果是io密集型應用,則執行緒池大小設定為2n+1
這裡去乙個網頁抓資料 需要建立http請求響(io)應後拿到資料,然後再將資料入庫(io) 這個過程 是io密集型的任務
即需要建立 2n+1個執行緒
最佳執行緒數目=( (執行緒等待時間+執行緒cpu時間) / 執行緒cpu時間 )* cpu數目
先跑出來 1.請求和寫庫時的io等待時間 2.cpu的執行時間 3.cpu的數目 然後通過上面的公式拿到
執行緒cpu時間=0.5s
執行緒等待時間=1.5s
cpu核心數為=8
最大執行緒數為3
如果目前有5個執行緒 此時執行緒池內仍然只有乙個執行緒
如果目前有6個執行緒,即些是佇列滿了才會開啟新的執行緒 因此maximumpoolsize主要是看佇列是否滿了,滿了才會開啟新的執行緒
J U C執行緒池
執行緒的建立和切換都是代價比較大的。所以,我們需要有乙個好的方案能做到執行緒的復用,這就涉及到乙個概念 執行緒池。合理的使用執行緒池能夠帶來3個很明顯的好處 降低資源消耗 通過重用已經建立的執行緒來降低執行緒建立和銷毀的消耗 提高響應速度 任務到達時不需要等待執行緒建立就可以立即執行。提高執行緒的可...
j u c執行緒 執行緒池
final void runworker worker w catch runtimeexception x catch error x catch throwable x finally finally completedabruptly false finally private runnabl...
執行緒池 juc包下
1.使用執行緒池的優點如下 1.降低資源消耗 通過重複利用已建立的執行緒,降低執行緒建立與銷毀帶來的損耗。2.提高響應速度 當新任務到達時,任務不需要等待執行緒建立就可以立即執行。3.提高執行緒的可管理性 使用執行緒池可以統一進行執行緒分配 排程與監控。當乙個runnable或callable物件到...