執行緒池的概念

2022-06-08 10:15:07 字數 668 閱讀 7509

單位時間內必須處理數目巨大的連線請求,但處理時間卻相對較短。

傳統多執行緒方案中,一旦接受到請求之後,即建立乙個新的執行緒,由該執行緒執行任務。任務執行完畢後,執行緒退出。這就是

即時建立,即時銷毀的策略。儘管與建立程序相比,建立執行緒的時間已經大大的縮短,但是如果提交給執行緒的任務執行時間

很短,而且執行次數極其頻繁,那麼伺服器將處於不停的建立執行緒,銷毀執行緒的狀態。

t1: 執行緒建立時間

t2: 執行緒執行時間,包括執行緒的同步等時間

t3: 執行緒銷毀時間

執行緒本身的開銷所佔的比例為(t1+t3)/(t1+t2+t3)。如果執行緒執行的時間很短,這筆開銷可能佔到20%~50%左右。如果任務

執行很頻繁的話,這筆開銷將是不可忽略的。

執行緒池能夠減少建立的執行緒個數。通常執行緒池所允許的併發執行緒是有上限的,如果同時需要併發的執行緒數超過上限,那麼一

部分執行緒將會等待。而傳統方案中,如果同時請求數目為2000,那麼最壞情況下,系統可能需要產生2000個執行緒。儘管這不

是乙個很大的數目,但是也有部分機器可能達不到這種要求。

執行緒池管理器:用於建立並管理執行緒池

工作執行緒:執行緒池中實際執行的執行緒

任務介面:將執行緒執行的任務抽象出來,形成任務介面,使執行緒池與具體的任務無關

任務佇列:可能是佇列,鍊錶之類的資料結構,其中儲存執行執行緒

執行緒池概念,任務

問題 執行緒是寶貴的記憶體資源,單個執行緒約佔1mb空間,過多分配易造成記憶體溢位 頻繁的建立及銷毀執行緒會增加虛擬機器 頻率 資源開銷,造成程式效能下降 執行緒池 執行緒容器,可設定執行緒分配的數量上限 將預先建立的執行緒物件存入池中,並重用執行緒池中的執行緒物件 避免頻繁的建立和銷毀 將任務提交...

連線池,執行緒池 概念

資料庫連線池 引數介紹 name 表示你的連線池的名稱也就是你要訪問連線池的位址 auth 是連線池管理權屬性,container表示容器管理 type 是物件的型別 driverclassname 是資料庫驅動的名稱 url 是資料庫的位址 username 是登陸資料庫的使用者名稱 passwo...

程序 執行緒 執行緒安全 執行緒池的概念

1 程序 就是記憶體中的一段區域,這段區域中儲存了cpu執行的機器指令以及函式執行時的堆疊資訊,要想讓程序執行,就把main函式的第一條機器指令位址寫入pc暫存器,這樣程序就執行起來了。2 執行緒 main函式的特殊之處無非就在於是cpu執行的第乙個函式,除此之外再無特別之處,我們可以把pc暫存器指...