在傳統伺服器結構中,常是有乙個總的監聽執行緒監聽有沒有新的使用者連線伺服器,每當有乙個新的使用者進入,伺服器就開啟乙個新的執行緒使用者處理這 個使用者的資料報。這個執行緒只服務於這個使用者,當使用者與伺服器端關閉連線以後,伺服器端銷毀這個執行緒。然而頻繁地開闢與銷毀執行緒極大地占用了系統的資源,而且在大量使用者的情況下,系統為了開闢和銷毀執行緒將浪費大量的時間和資源。執行緒池
提供了乙個解決外部大量使用者與伺服器有限資源的矛盾。
執行緒池
和傳統的乙個使用者對應乙個執行緒的處理方法不同,它的基本思想就是在程式開始時就在記憶體中開闢一些執行緒,執行緒的數目是固定的,他們獨自形成乙個類,遮蔽了對外的操作,而伺服器只需要將資料報交給執行緒池就可以了。當有新的客戶請求到達時,不是新建立乙個執行緒為其服務,而是從「池子」中選擇乙個空閒的執行緒為新的客戶請求服務,
linux系統程式設計 執行緒
include int pthread create pthread t thread,const pthread attr t attr,void start routine void void arg include include include include include include...
Linux系統程式設計 執行緒基礎
執行緒的概念 執行緒是程序內部的一條執行序列,或者執行流。每個程序至少有一條執行緒,稱之為主線程。從 的角度看,就是main函式的函式體。在主線程中可以通過執行緒庫建立其他函式執行緒。在同乙個程序中的執行緒都是併發執行的,並且執行緒的執行順序由系統決定。主線程和函式執行緒沒有本質的區別,只是主線程是...
linux 系統程式設計 5 執行緒
目錄7.3 設定執行緒屬性 參考乙個程序至少需要乙個執行緒作為它的指令執行體,程序管理著資源 比如cpu 記憶體 檔案等等 而將執行緒分配到某個cpu上執行 新的執行執行緒將擁有自己的棧,但與它的建立者共享全域性變數 檔案描述符 訊號處理函式和當前目錄狀態 特點 使用pthread create建立...