線程池 實現原理 傳統的多線程服務器模型 實現 短小精悍細解

                                     粉絲不過W

線程池

        很多的網絡服務器( 包括 Web 服務器) :單位時間內必須處理數目巨大的連接請求, 但 處理時間卻是比較短

       傳統的多線程服務器模型 實現: 一旦有個請求到達, 就創建一個新的線程, 由該線程執行任務, 任務執行完畢之後, 線程就退出。 這就是" 即時創建,即時銷燬 "的策略

       與創建進程相比, 創建線程的時間已經大大的縮短, 但如果 提交給線程的任務是執行時間較短, 而且執行次數非常頻繁, 那服務器就 處於一個不停的創建線程銷燬線程的狀態。 這筆開銷是不可忽略的, 尤其是線程執行的時間非常非常短的情況下

    線程池就解決了上面得問題

     實現原理:

             在應用程序啓動之後, 就馬上創建一定數量的線程, 放入空閒隊列

             這些線程都處於阻塞狀態, 這些線程只佔一點內存, 不佔用 CPU

            當任務到來後, 線程池將選擇一個空閒的線程, 將任務傳入此線程中運行

            當所有的線程都處在處理任務的時候, 線程池將自動創建一定的數量的新線程, 用於處理更多的任務

            執行任務完成之後線程並不退出, 而是繼續在線程池中等待下一次任務

             當大部分線程處於阻塞狀態時, 線程池將自動銷燬一部分的線程, 回收系統資源

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章