爲了不繫統頻繁的建立和銷燬線程所帶來的性能消耗,能夠讓線程獲得很好的複用。當須要線程時從線程池中取,當使用完歸還線程。框架
建立固定數量的線程池 建立一個數量的線程池 建立根據實際狀況調整線程數量的線程池 建立一個執行定時任務的線程池 建立執行定時任務的線程池分佈式
當任務被提交還沒有執行的任務隊列是一個BlockingQueue接口對象,只存放Runnable對象,根據隊列的功能分爲 SynchronousQueue ArrayBlockingQueue LinkedBlockingQueue PriorityBlockingQueue性能
若是線程池處理速度達不到任務出現速度時,只能執行拒絕策略。 AbortPolicy CallerRunsPolicy DiscardOledestPolicy DiscardPolicy優化
公式進行粗略計算:線程池個數=CPU的數量CPU的使用率(1+等待時間/計算時間).net
最後看下分而治之:Fork/Join線程