線程和線程池優缺點


      每次new Thread的時候,都會創建一個單線程,但是,我們在項目中基本都是使用線程池,本文主要整理了線程和線程池的優缺點。

new Thread的優缺點

      優點:通過new Thread()創建線程的API簡單易用,結構清晰,對於執行單一的一次性任務十分便利。

      缺點

  1.  每次new Thread都新建對象,性能差;
  2.  沒有線程管理者,可能會無限制新建線程,不僅會消耗系統資源,還會降低系統的穩定性,例如占用過多的系統資源導致OOM;
  3. 缺乏更多功能,比如定時、定期、並發數控制等功能。

線程池的優點      

       合理利用線程池能夠帶來三個好處:

  • 降低資源消耗。通過重復利用已創建的線程降低線程創建和銷毀造成的消耗。
  • 提高響應速度。當任務到達時,任務可以不需要等到線程創建就能立即執行。
  • 提高線程的可管理性。線程是稀缺資源,使用線程池可以進行統一的分配、調優和監控。

池化技術    

       提到線程池,就自然而然的想起了池化技術,池化技術的思想主要是提前緩存大量的資源,減少每次獲取資源的消耗,提高對資源的利用率,特別是在高並發場景這種提高更加明顯。使用池化技術緩存的資源對象有如下共同特點:

  1. 對象創建時間長;
  2. 對象創建需要大量資源;
  3. 對象創建后可被重復使用。

       除了上述線程池使用了池化技術,對象池、內存池(Memory pool)、數據庫連接池和http連接池等也使用了。數據庫連接池比較典型的有SqlServer、Oracle和MySQL的連接池。對象池就是提前創建很多對象,將用過的對象保存起來,等下一次需要這種對象的時候,再拿出來重復使用。同樣,這么好的思想在ActiveMQ連接池中也得到了應用。


免責聲明!

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



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