記憶體池,程序池,執行緒池

2021-07-26 20:35:25 字數 594 閱讀 2127

在使用new、malloc在堆區申請一塊記憶體的時候,由於每次申請的記憶體大小不一樣就會產生很多記憶體碎片,不好管理和浪費。

記憶體池則是在真正使用記憶體之前,先申請分配一定數量的、大小相等的記憶體塊留作備用。當有新的記憶體需求時,就從記憶體池中分出一部分記憶體塊,若記憶體塊不夠用再 繼續申請新的記憶體。這樣做的優點就是盡量避免了記憶體碎片,使得記憶體分配效率得到提公升。

在物件導向程式設計中,物件的建立於析構都是乙個較為複雜的過程,比較耗費時間,所以為了提高程式的執行效率盡可能減少建立銷毀物件的次數,所以我們可以建立乙個程序池,預先放一些程序進去,要用的時候就直接呼叫,用完之後再把程序歸還給程序池,省下建立刪除程序的時間,不過當然就需要額外的開銷,利用執行緒池與程序池可以是管理程序與執行緒的工作交給系統管理。

執行緒池主要用於:

1.需要大量的執行緒來完成任務,且完成任務的時間比較短。比如web伺服器完成網頁請求這樣的任務,使用執行緒池技術是非常合適的。因為單個任務小,而任務數量巨大。對於長時間的任務,執行緒池沒明顯優勢,比如telnet鏈結請求,telnet會話時間比執行緒的建立時間大多了。

2.對效能要求苛刻的應用,比如要求伺服器迅速響應客戶請求

3.接受突發性的大量請求,但不至於使伺服器因此產生大量執行緒的應用。

記憶體池 執行緒池 程序池

由於伺服器的硬體資源 充裕 那麼提高伺服器效能的乙個很直接的方法就是以空間換時間,即 浪費 伺服器的硬體資源,以換取其執行效率。這就是池的概念。池是一組資源的集合,這組資源在伺服器啟動之初就完全被建立並初始化,這稱為靜態資源分配。當伺服器進入正式執行階段,即開始處理客戶請求的時候,如果它需要相關的資...

記憶體池 執行緒池 程序池

首先介紹乙個概念 池化技術 池化技術就是 提前儲存大量的資源,以備不時之需以及重複使用 池化技術應用廣泛,如記憶體池,執行緒池,連線池等等。記憶體池相關的內容,建議看看 apache nginx 等開源web 伺服器的記憶體池實現。由於在實際應用當做,分配記憶體 建立程序 執行緒都會設計到一些系統呼...

記憶體池 程序池 執行緒池

首先介紹乙個概念 池化技術 池化技術 一言以蔽之就是 提前儲存大量的資源,以備不時之需以及重複使用。池化技術應用廣泛,如記憶體池,執行緒池,連線池等等。記憶體池相關的內容,建議看看apache nginx等開源web伺服器的記憶體池實現。起因 由於在實際應用當中,分配記憶體 建立程序 執行緒都會設計...