執行緒池剖析

2021-07-09 15:57:04 字數 1242 閱讀 6545

public

final

class

threadpool

//建立執行緒池,worker_num為執行緒池中工作執行緒的個數

private threadpool(int

worker_num)

}//單態模式,獲得乙個預設執行緒個數的執行緒池

public

static

threadpool getthreadpool()

//單態模式,獲得乙個指定執行緒個數的執行緒池,worker_num(>0)為執行緒池中工作執行緒的個數

//worker_num<=0建立預設的工作執行緒個數

public

static threadpool getthreadpool(int

worker_num1)

//執行任務,其實只是把任務加入任務佇列,什麼時候執行有執行緒池管理器覺定

public

void

addtask(runnable task)

}//銷毀執行緒池,該方法保證在所有任務都完成的情況下才銷毀所有執行緒,否則等待任務完成才銷毀

public

void

destroy()

catch

(interruptedexception e)

}//工作執行緒停止工作,且置為null

for (int i = 0; i < worker_num; i++)

threadpool=null

; taskqueue.clear();

//清空任務佇列

}

/*** 內部類,工作執行緒

*/private

class workthread extends

thread

catch

(interruptedexception e)

}if (!taskqueue.isempty())

r = taskqueue.remove(0);//

取出任務

}

if (r != null

) r = null

; }

}//停止工作,讓該執行緒自然執行完run方法,自然結束

public

void

stopworker() }}

執行緒池原理剖析

利用執行緒池能夠帶來三個好處 第一 降低資源消耗。通過重複利用已建立的執行緒降低執行緒建立和銷毀造成的消耗。第二 提高響應速度。當任務到達時,任務可以不需要等到執行緒建立就能立即執行。第三 提高執行緒的可管理性。執行緒是稀缺資源,如果無限制的建立,不僅會消耗系統資源,還會降低系統的穩定性,使用執行緒...

執行緒池原理剖析

前面的我那幾個原始碼截圖,大家可以自己點進去看看,共同點都是封裝了 threadpoolexcutor這建構函式 無非就是傳遞的引數不一樣 比如 singlethreadexecutor public static executorservice newsinglethreadexecutor 就是...

Android之執行緒池深度剖析

public final class threadpool 建立執行緒池,worker num為執行緒池中工作執行緒的個數 private threadpool int worker num 單態模式,獲得乙個預設執行緒個數的執行緒池 public static threadpool getthre...