如何配置線程池


 

一:cpu密集型任務與IO密集型任務

  如果想合理的配置線程池,就需要了解我們任務的類型,是CPU密集型還是IO密集型,

CPU 密集型任務主要時間花費在計算上面,內存、硬盤、網絡占用的時間少於cpu本身計算的時間,這時應配置盡可能小的線程,

避免線程之間頻繁的切換消耗資源,如配置 Ncpu+1 個線程的線程池。

由於 IO 密集型任務線程並不是一直在執行任務,cpu的性能,消耗的時間少於請求內存、硬盤、網絡的時間,這時大部分時間cpu處於空閑狀態,

則應配置盡可能多的線程,如 2*Ncpu。 

什么是cpu密集型和IO密集型,參考: https://www.cnblogs.com/aspirant/p/11441353.html

 

二:舉例

  1:依賴數據庫連接池的任務,因為線程提交 SQL 后需要等待數據庫返回結果, 等待的時間越長,則 CPU 空閑時間就越長,

那么線程數應該設置得越大,這樣 才能更好地利用 CPU。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM