threadpoolexecutor.abortpolicy
:丟棄任務並丟擲rejectedexecutionexception異常
threadpoolexecutor.discardpolicy
:也是丟棄任務,但是不丟擲異常。
threadpoolexecutor.discardoldestpolicy
:丟棄佇列最前面的任務,執行後面的任務
threadpoolexecutor.callerrunspolicy
:由呼叫執行緒處理該任務
// spring原生執行緒池
threadfactory namedthreadfactory = new threadfactorybuilder()
.setnameformat("demo-pool-%d").build();
executorservice singlethreadpool = new threadpoolexecutor(1, 1,
0l, timeunit.milliseconds,
new linkedblockingqueue(1024), namedthreadfactory, new threadpoolexecutor.abortpolicy());
singlethreadpool.execute(() -> system.out.println(thread.currentthread().getname()));
singlethreadpool.shutdown();
xml宣告
/**
* 放一些自定義的bean宣告
* * @author created by 思偉 on 2019/12/16
*/@configuration
@enableasync
public class mybootconfig ")
private int corepoolsize;
/*** 執行緒池維護執行緒的最大數量
*/@value("$")
private int maxpoolsize;
/*** 執行緒池所使用的緩衝佇列
*/@value("$")
private int queuecapacity;
/*** 執行緒池維護執行緒所允許的空閒時間
*/@value("$")
private int keepaliveseconds;
/*** 配置執行緒池中的執行緒的名稱字首
*/@value("$")
private string threadnameprefix;
/*** spring執行緒池
** @return taskexecutor
*/@bean(name = asyncexecutionaspectsupport.default_task_executor_bean_name)
@conditionalo****singbean
public taskexecutor taskexecutor()
}
/**
* spring執行緒池
*/@resource
private taskexecutor taskexecutor;
@override
public void run(string... args) throws exception );
}
Spring整合執行緒池
自己在程式中手動new很容易造成執行緒濫用,建立執行緒也是比較消耗資源的操作,所以建議如果有此需求,將執行緒池統一交給spring框架進行管理。如下 bean id taskexecutor class org.springframework.scheduling.concurrent.thread...
Spring 執行緒池
spring 執行緒池 從例子開始講 corepoolsize 執行緒池至少有2個執行緒是啟動的,即使是空閒的也不會關閉。maxpoolsize 最大的執行緒數目,當corepoolsize繁忙時,會建立執行緒,啟動的總的執行緒數不能大於maxpoolsize queuecapacity queue...
Spring執行緒池配置
1 配置檔案中配置執行緒池 class org.springframework.scheduling.concurrent.threadpooltaskexecutor corepoolsize 執行緒池至少有2個執行緒是啟動的,即使是空閒的也不會關閉。maxpoolsize 最大的執行緒數目,當c...