publicfinal
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...