建議126:適時(shí)選擇不同的線程池來實(shí)現(xiàn)

  Java的線程池實(shí)現(xiàn)從根本上來說只有兩個(gè):ThreadPoolExecutor類和ScheduledThreadPoolExecutor類,這兩個(gè)類還是父子關(guān)系,但是Java為了簡(jiǎn)化并行計(jì)算,還提供了一個(gè)Exceutors的靜態(tài)類,它可以直接生成多種不同的線程池執(zhí)行器,比如單線程執(zhí)行器、帶緩沖功能的執(zhí)行器等,但歸根結(jié)底還是使用ThreadPoolExecutor類或ScheduledThreadPoolExecutor類的封裝類。

  為了理解這些執(zhí)行器,我們首先來看看ThreadPoolExecutor類,其中它復(fù)雜的構(gòu)造函數(shù)可以很好的理解線程池的作用,代碼如下:  

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

public class ThreadPoolExecutor extends AbstractExecutorService {    // 最完整的構(gòu)造函數(shù)
    public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,            long keepAliveTime, TimeUnit unit,
            BlockingQueue<Runnable> workQueue, ThreadFactory threadFactory,
            RejectedExecutionHandler handler) {        // 檢驗(yàn)輸入條件
        if (corePoolSize < 0 || maximumPoolSize <= 0
                || maximumPoolSize < corePoolSize || keepAliveTime < 0)  
        
		

網(wǎng)友評(píng)論