{linux C}之linux下的C線程池

來源:互聯網
上載者:User

 什麼時候需要建立線程池呢?簡單的說,如果一個應用需要頻繁的建立和銷毀線程,而任務執行的時間又非常短,這樣線程建立和銷毀的帶來的開銷就不容忽視,這時也是線程池該出場的機會了。如果線程建立和銷毀時間相比任務執行時間可以忽略不計,則沒有必要使用線程池了-----http://hi.baidu.com/boahegcrmdghots/item/f3ca1a3c2d47fcc52e8ec2e1

大多數的網路伺服器,包括Web伺服器都具有一個特點,就是單位時間內必須處理數目巨大的串連請求,但是處理時間卻是比較短的。在傳統的多線程伺服器模型中是這樣實現的:一旦有個請求到達,就建立一個新的線程,由該線程執行任務,任務執行完畢之後,線程就退出。這就是"即時建立,即時銷毀"的策略。儘管與建立進程相比,建立線程的時間已經大大的縮短,但是如果提交給線程的任務是執行時間較短,而且執行次數非常頻繁,那麼伺服器就將處於一個不停的建立線程和銷毀線程的狀態。這筆開銷是不可忽略的,尤其是線程執行的時間非常非常短的情況。

線程池就是為瞭解決上述問題的,它的實現原理是這樣的:在應用程式啟動之後,就馬上建立一定數量的線程,放入閒置隊列中。這些線程都是處於阻塞狀態,這些線程只佔一點記憶體,不佔用CPU。當任務到來後,線程池將選擇一個閒置線程,將任務傳入此線程中運行。當所有的線程都處在處理任務的時候,線程池將自動建立一定的數量的新線程,用於處理更多的任務。執行任務完成之後線程並不退出,而是繼續線上程池中等待下一次任務。當大部分線程處於阻塞狀態時,線程池將自動銷毀一部分的線程,回收系統資源-----http://www.cnblogs.com/venow/archive/2012/11/22/2779667.html

使用C++的線程池,類的封裝--http://www.cnblogs.com/venow/archive/2012/12/11/2809846.html

-----------------------------------------------

進程與線程的數量   http://www.cnblogs.com/niocai/archive/2012/04/01/2428154.html

linux查看線程(線程堆棧大小、進程的最大記憶體和作業系統位元)最大數量:cat /proc/sys/kernel/threads-max 

調整棧大小:ulimit -s
修改預設值: echo xxx > /proc/sys/kernel/threads-max 

每個進程的局部段描述表LDT都作為一個獨立的段而存在,在全域段描述表GDT中要有一個表項指向這個段的起始地址,並說明該段的長度以及其他一些 參數。除上之外,每個進程還有一個TSS結構(任務狀態段)也是一樣。所以,每個進程都要在全域段描述表GDT中佔據兩個表項。那麼,GDT的容量有多大
呢?段寄存器中用作GDT表下標的位段寬度是13位,所以GDT中可以有8192個描述項。除一些系統的開銷(例如GDT中的第2項和第3項分別用於核心 的程式碼片段和資料區段,第4項和第5項永遠用於當前進程的程式碼片段和資料區段,第1項永遠是0,等等)以外,尚有8180個表項可供使用,所以理論上系統中最大的 進程數量是4090

------------------------------------------------------------------------------



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.