線程池vs多線程

來源:互聯網
上載者:User

       做過一個基於線程池的http伺服器,面試時老師經常會問到線程池跟多線程有什麼好處,所以在這裡總結一下:

      

        當瀏覽器傳送一個請求到達伺服器後,如果是多線程,服務端會臨時性的建立一個新的進程,來處理相應的用戶端的請求,當一個線程處理完相應的用戶端任務後,線程也就結束了自己的生命週期,不能再一次被啟用。另外在java中,如果每當一個請求到達就會建立一個新的進程,開銷是很大的。

       在實際應用中,系統在建立和銷毀線程所花的時間,有時候甚至比處理這個請求所花的時間更多,不光是建立和銷毀,線程活動所花費的時間也是很多的。在jvm裡建立太多的線程,則可能會使系統過渡消耗而系統出現資源不足的情況。

       為了防止資源不足的情況,伺服器程式應該想辦法來限制給定時間內處理任務的數量,從而來減少線程建立和銷毀的數目,尤其是那些比較大的對象,儘可能利用已有的對象進行服務。

       線程池技術主要來解決系統資源不足的情況。首先,重用一個線程可以將線程的建立和開銷都分攤給多個任務。其次,由於線程已經存在,可以消除線程建立帶來的延遲,這樣系統就可以立即為請求服務。另外通過調整線程池中線程的數量,可以防止出現資源不足的情況。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.