Spring boot中使用執行緒池

2021-09-24 04:35:07 字數 766 閱讀 2885

既然用了 springboot ,那自然得發揮 spring 的特性,所以需要 spring 來幫我們管理執行緒池:

@configuration

public class treadpoolconfig

}

使用時:

@resource(name = "consumerqueuethreadpool")

private executorservice consumerqueuethreadpool;

@override

public void execute()

}

執行緒池大小可以考慮如下說法進行配置:

高併發、任務執行時間短的業務,執行緒池執行緒數可以設定為cpu核數+1,減少執行緒上下文的切換

併發不高、任務執行時間長的業務要區分開看:

• 假如是業務時間長集中在io操作上,也就是io密集型的任務,因為io操作並不占用cpu,所以不要讓所有的cpu閒下來,可以加大執行緒池中的執行緒數目,讓cpu處理更多的業務

• 假如是業務時間長集中在計算操作上,也就是計算密集型任務,這個就沒辦法了,和(1)一樣吧,執行緒池中的執行緒數設定得少一些,減少執行緒上下文的切換

併發高、業務執行時間長,解決這種型別任務的關鍵不在於執行緒池而在於整體架構的設計,看看這些業務裡面某些資料是否能做快取是第一步,增加伺服器是第二步,至於執行緒池的設定,設定參考(2)。

業務執行時間長的問題,也可能需要分析一下,看看能不能使用中介軟體對任務進行拆分和解耦。

Spring boot中使用多執行緒

首先bean物件由spring容器管理 其次預設的spring初始化乙個類時,其相關依賴的元件都會被初始化 然而自己new出來的類,其相關依賴的元件不會被初始化,因為繞過了spring 一 配置spring上下文 component public class implements override ...

SpringBoot中使用新執行緒傳送郵件

由於郵件的傳送是乙個阻塞操作,因此我將之放到子執行緒中完成,因此我需要在springboot中配置乙個執行緒池,如下 bean public executorservice executorservice 在配置類中提供上面這個bean即可,然後在需要用的地方將之注入即可 autowired exe...

Spring Boot中使用MongoDB資料庫

前段時間分享了關於spring boot中使用redis的文章,除了redis之後,我們在網際網路產品中還經常會用到另外一款著名的nosql資料庫mongodb。下面就來簡單介紹一下mongodb,並且通過乙個例子來介紹spring boot中對mongodb訪問的配置和使用。mongodb是乙個基...