粉絲不過W
線程池
很多的網絡服務器( 包括 Web 服務器) :單位時間內必須處理數目巨大的連接請求, 但 處理時間卻是比較短
傳統的多線程服務器模型 實現: 一旦有個請求到達, 就創建一個新的線程, 由該線程執行任務, 任務執行完畢之後, 線程就退出。 這就是" 即時創建,即時銷燬 "的策略
與創建進程相比, 創建線程的時間已經大大的縮短, 但如果 提交給線程的任務是執行時間較短, 而且執行次數非常頻繁, 那服務器就 處於一個不停的創建線程和銷燬線程的狀態。 這筆開銷是不可忽略的, 尤其是線程執行的時間非常非常短的情況下
線程池就解決了上面得問題
實現原理:
在應用程序啓動之後, 就馬上創建一定數量的線程, 放入空閒的隊列中
這些線程都處於阻塞狀態, 這些線程只佔一點內存, 不佔用 CPU
當任務到來後, 線程池將選擇一個空閒的線程, 將任務傳入此線程中運行
當所有的線程都處在處理任務的時候, 線程池將自動創建一定的數量的新線程, 用於處理更多的任務
執行任務完成之後線程並不退出, 而是繼續在線程池中等待下一次任務
當大部分線程處於阻塞狀態時, 線程池將自動銷燬一部分的線程, 回收系統資源