學習筆記———— 線程池創建分析

ThreadPoolExecuter 參數分析 7 個 依次

    

ThreadPoolExecuter (int corePoolSize,
                    int maximumPoolSize,
                    long keepAliveTime,
                    TimeUnit unit,
                    BlockingQueue<Runnable> workQueue,
                    ThreadFactory threadFactory,
                    RejectedExecutionHandler handler )

    corePoolSize :核心線程數,保持在線程池中的線程數量

    maximumPoolSize:線程池允許最大線程數

    keepAliveTime / timeUnit :線程池中線程空閒不被釋放的最大時間,配合timeUnit使用,爲0表示永遠不被釋放

    workQueue :BlockingQueue<Runable> 工作線程任務的阻塞隊列,用來存放等待執行的任務,默認實現LInkedBlockingQueue

   thredFactory :線程池創建工廠,子類通過自定義實現接口“Thread newThread(Runnable)”通過工廠創建線程池具體的Thread線                              程    默認實現了:DefaultThreadFactory

  handler(RejectedExecutionHandler) : 拒絕策略

            當workQueue無法存放新加任務,或添加新任務後線程池停止任務,使用設置的拒絕策略拒絕新加任務的執行,可以用rejectedExecution來實現自己的拒絕策略    默認策略 : AbortPolicy 拋出異常

 

拒絕策略:

    1:CallerRunsPolicy :調用當前方執行策略  

          當前調用線程或添加任務的線程執行,這種方法當線程池無法執行時,使用調用方資源來執行任務

    2:AbortPolicy : 異常策略

          拋出RejectedExecutionException異常

    3:DiscardPolicy :直接拋棄策略

          對任務不做任何事情,忽略該任務,不執行不報錯

     4:DiscardOldestPolicy:拋棄最早任務策略

          將workQueue的一個任務取出拋棄,當前任務放入workQueue中執行

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章