JUC 執行緒池數量

2021-09-02 05:48:12 字數 615 閱讀 8751

去乙個網頁抓資料儲存到資料庫中,這個過程也就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物件到...