為什麼要使用執行緒池?

2021-06-17 23:08:48 字數 415 閱讀 9025

專案中一直在使用執行緒池,平時卻很少問自己:為什麼要使用執行緒池,當別人問起為什麼的時候,腦子一片茫然。所以最近研究了一下為什麼?順便摘錄了一些網友的回答

1.乙個執行緒的週期分為:建立、執行、銷毀三個階段。 

處理乙個任務時,首先建立乙個任務執行緒,然後執行任務,完了,銷毀執行緒。而執行緒處於執行狀態的時候,才是真的在處理我們交給它的任務, 

這個階段才是有效執行時間。所以,我們希望花在建立和銷毀執行緒的資源越少越好。如果不銷毀執行緒,而這個執行緒又不能被其他的任務呼叫,那麼就會出現資源的浪費。 

為了提高效率,減少建立和銷毀執行緒帶來時間和空間上的浪費,出現了執行緒池技術。這種技術是在開始就建立一定量的執行緒,批量處理一類任務,等待任務的到來。 

任務執行完畢後,執行緒又可以執行其他的任務。等不再需要執行緒的時候,就銷毀。這樣就省去了頻繁建立和銷毀執行緒的麻煩。

為什麼要使用執行緒池

諸如web伺服器,資料庫伺服器,檔案伺服器或者郵件伺服器之類的許多伺服器應用程式都面向處理來自某些遠端 短小的任務。請求以某種方式到達伺服器,這種方式可能是通過網路協議 例如http,ftp 通過jms佇列或者可能通過輪詢資料庫。不管請求如何到達,伺服器應用程式經常出現的情況是 單個任務處理的時間很...

執行緒池 為什麼需要使用執行緒池

通過上面執行緒池的簡介,我們其實可以發現,普通的建立乙個執行緒都是及創及用,並且沒有上線,我想建立1000個執行緒或者建立10000個執行緒都可以,但是這樣建立執行緒的方式有乙個問題,那就是忽略了執行環境的效能,比如我們平時乙個64位4核的伺服器,他建議的執行緒數可以由公示算出來 執行緒池大小 物理...

為什麼要使用連線池?

傳統的資料庫連線方式 乙個連線物件對應乙個物理連線,每次操作都開啟乙個物理連線,使用完都關閉連線,造成系統效能低下。連線池技術 客戶程式得到的連線物件是連線池中物理連線的乙個控制代碼,呼叫連線物件的close 方法,物理連線並沒有關閉,資料來源的實現只是刪除了客戶程式中的連線物件和池中的連線物件之間...