核心執行緒數,當乙個新的任務提交時,如果執行緒池中的數量未達到核心執行緒數,會新起乙個執行緒執行該任務,即使執行緒池中有空閒的執行緒。
執行緒池中允許的最大執行緒數,包含包含核心執行緒和非核心執行緒。
當執行緒數超過核心執行緒數時,該引數規定了超過核心執行緒數的執行緒最大空閒時間。
描述keepalivetime的時間單位。
任務等待佇列,當乙個新的任務提交時,如果執行緒池中的執行緒數超過了核心執行緒數,且任務等待佇列未滿,會將該任務加入等待佇列中,並不會立即執行該任務;
當任核心執行緒數和任務佇列都達到閾值時,如果執行緒數未達到最大執行緒數,將會新起乙個執行緒執行該任務。
自定義執行緒工廠
當執行緒數和等待佇列都達到閾值時,新的任務採用哪種拒絕策略。
常見的拒絕策略:
拒絕策略類
拒絕策略
threadpoolexecutor.callerrunspolicy
threadpoolexecutor.abortpolicy
丟擲rejectedexecutionexception異常 ("task " + r.tostring() +" rejected from " +e.tostring())。
threadpoolexecutor.discardpolicy
什麼也不做,丟棄策略。
threadpoolexecutor.discardoldestpolicy
取出佇列中最久未被執行的任務,進行執行,如果仍然無法執行,直接丟棄。
ThreadPoolExecutor構造引數分析
threadpoolexecutor7個引數 corepoolsize 核心執行緒數執行緒數定義了最小可以同時執行的執行緒數量。maximumpoolsize 當佇列中存放的任務達到佇列容量的時候,當前可以同時執行的執行緒數量變為最大執行緒數。workqueue 當新任務來的時候會先判斷當前執行的執...
ThreadPoolExecutor 引數解析
threadpoolexecutor 主要有以下幾個引數 public threadpoolexecutor int corepoolsize,int maximumpoolsize,long keepalivetime,timeunit unit,blockingqueueworkqueue,th...
ThreadPoolExecutor引數設定
1 首先預估系統負載,需要以下幾個值 tasks 每秒的任務數,假設為50 100 tasktime 每個任務花費時間,假設為0.1s responsetime 系統允許容忍的最大響應時間,假設為30s 2 計算 1 corepoolsize 每個任務需要tasktime秒處理,則每個執行緒每秒可處...