spring boot 整合多執行緒

2021-08-09 21:14:40 字數 1687 閱讀 3376

配置pom檔案

org.mybatis.spring.bootgroupid>

mybatis-spring-boot-starterartifactid>

1.3.0version>

dependency>

org.springframework.bootgroupid>

spring-boot-configuration-processorartifactid>

trueoptional>

dependency>

執行緒池的配置檔案
#執行緒池配置

spring:

task:

pool:

corepoolsize : 4

maxpoolsize : 8

keepaliveseconds : 60

queuecapacity : 20

新建執行緒池引數裝載類
@configurationproperties(prefix = "spring.task.pool")

public

class taskthreadpoolconfig

public

void

setcorepoolsize(int corepoolsize)

public

intgetmaxpoolsize()

public

void

setmaxpoolsize(int maxpoolsize)

public

intgetkeepaliveseconds()

public

void

setkeepaliveseconds(int keepaliveseconds)

public

intgetqueuecapacity()

public

void

setqueuecapacity(int queuecapacity)

}

@configurationproperties(prefix = 「spring.task.pool」)是讓spring在建立bean時去載入配置檔案中開頭為spring.task.pool的內容。

這一步需要在spring boot 啟動類上加上註解:

@enableconfigurationproperties()

告訴spring 去根據配置檔案的內容去建立bean

執行緒池的建立

@configuration

@enableasync

public

class

taskexecutepool

}

建立多執行緒任務類和方法
@component

public

class dosomething

@async("mytaskasyncpool")

public

void

comsumertask()

}

注意:在需要多執行緒執行的類上加上註解@component,在需要多執行緒執行的方法上加上@async(「mytaskasyncpool」)

spring boot 的多執行緒任務就搭好了,核心執行緒數量可以根據機器處理器核數進行確定。最好不要超過處理器核數。

SpringBoot啟動多執行緒

新建乙個執行緒池的配置類,需要被spring掃瞄到。configuration enableasync public class threadexecutorconfig 新增乙個普通類,裡面編寫需要執行的方法,方法加上 async註解,呼叫方法時自動啟動執行緒。component public c...

Spring boot中使用多執行緒

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

例項講解spring boot 多執行緒

spring 通過任務執行器 taskexecutor 來實現多mdkwixfpo執行緒和併發程式設計。使用threadpooltaskexecutor可實現乙個基於執行緒池的taskexecutor。而實際開發中任務一般是非阻塞的,即非同步的,所有我們在配置類中通過 enableasync開啟對非...