JAVA ThreadPool

概述

爲了不繫統頻繁的建立和銷燬線程所帶來的性能消耗,能夠讓線程獲得很好的複用。當須要線程時從線程池中取,當使用完歸還線程。框架

建立線程池方式

建立固定數量的線程池 建立一個數量的線程池 建立根據實際狀況調整線程數量的線程池 建立一個執行定時任務的線程池 建立執行定時任務的線程池分佈式

任務隊列

當任務被提交還沒有執行的任務隊列是一個BlockingQueue接口對象,只存放Runnable對象,根據隊列的功能分爲 SynchronousQueue ArrayBlockingQueue LinkedBlockingQueue PriorityBlockingQueue性能

拒絕策略

若是線程池處理速度達不到任務出現速度時,只能執行拒絕策略。 AbortPolicy CallerRunsPolicy DiscardOledestPolicy DiscardPolicy優化

線程數量優化規則

公式進行粗略計算:線程池個數=CPU的數量CPU的使用率(1+等待時間/計算時間).net

Fork/Join

最後看下分而治之:Fork/Join線程

參考資料:

Fork/Join使用對象

分佈式框架中使用CompletableFutureblog

相關文章
相關標籤/搜索