Spring整合執行緒池

2021-10-02 07:59:42 字數 1817 閱讀 9559

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...