(一)什么是線程池
線程池做的工作主要是控制運行的線程的數(shù)量,處理過程中將任務放入隊列,然后在線程創(chuàng)建后啟動這些任務,如果線程數(shù)量超過了最大數(shù)量超出數(shù)量的線程排隊等候,等其它線程執(zhí)行完畢,再從隊列中取出任務來執(zhí)行。
他的主要特點為:
降低資源消耗。通過重復利用已創(chuàng)建的線程降低線程創(chuàng)建和銷毀造成的消耗。
提高響應速度。當任務到達時,任務可以不需要的等到線程創(chuàng)建就能立即執(zhí)行。
提高線程的可管理性。線程是稀缺資源,如果無限制的創(chuàng)建,不僅會消耗系統(tǒng)資源,還會降低系統(tǒng) 的穩(wěn)定性,使用線程池可以進行統(tǒng)一的分配,調(diào)優(yōu)和監(jiān)控
(二)線程池的基本原理
線程池的組成一般的線程池主要分為以下 4 個組成部分:
線程池管理器:用于創(chuàng)建并管理線程池
工作線程:線程池中的線程
任務接口:每個任務必須實現(xiàn)的接口,用于工作線程調(diào)度其運行
任務隊列:用于存放待處理的任務,提供一種緩沖機制
ThreadPoolExecutor 的構(gòu)造方法如下:
public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,
TimeUnit unit,
BlockingQueueworkQueue,
ThreadFactory threadFactory,
RejectedExecutionHandler handler) { }
構(gòu)造函數(shù)參數(shù)說明:
更多關于“Java培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓經(jīng)驗,課程大綱更科學更專業(yè),有針對零基礎的就業(yè)班,有針對想提升技術的好程序員班,高品質(zhì)課程助力你實現(xiàn)java程序員夢想。