欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot2線程池定義使用方法解析

 更新時(shí)間:2020年03月26日 09:10:47   作者:趙小胖0914  
這篇文章主要介紹了SpringBoot2線程池定義使用方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

我們都知道spring只是為我們簡(jiǎn)單的處理線程池,每次用到線程總會(huì)new 一個(gè)新的線程,效率不高,所以我們需要自定義一個(gè)線程池。

定義線程池

@Slf4j
@EnableAsync
@Configuration
public class AsyncExecutorConfig implements AsyncConfigurer {

  @Bean
  public ThreadPoolTaskExecutor asyncServiceExecutor() {
    //返回可用處理器的虛擬機(jī)的最大數(shù)量不小于1
    int cpu = Runtime.getRuntime().availableProcessors();
    log.info("start asyncServiceExecutor cpu : {}", cpu);
    ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
    //配置核心線程數(shù)
    executor.setCorePoolSize(cpu);
    //配置最大線程數(shù)
    executor.setMaxPoolSize(cpu);
    //配置隊(duì)列大小
    executor.setQueueCapacity(50);
    //用來(lái)設(shè)置線程池關(guān)閉的時(shí)候等待所有任務(wù)都完成再繼續(xù)銷毀其他的Bean
    executor.setWaitForTasksToCompleteOnShutdown(true);
    //設(shè)置線程池中任務(wù)的等待時(shí)間,如果超過(guò)這個(gè)時(shí)候還沒(méi)有銷毀就強(qiáng)制銷毀,以確保應(yīng)用最后能夠被關(guān)閉,而不是阻塞住
    executor.setAwaitTerminationSeconds(60);
    //配置線程池中的線程的名稱前綴
    executor.setThreadNamePrefix("async-service-");
    // rejection-policy:當(dāng)pool已經(jīng)達(dá)到max size的時(shí)候,如何處理新任務(wù)
    // CALLER_RUNS:不在新線程中執(zhí)行任務(wù),而是有調(diào)用者所在的線程來(lái)執(zhí)行
    // 使用預(yù)定義的異常處理類
    executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
    //執(zhí)行初始化
    executor.initialize();
    return executor;
  }

  @Override
  public Executor getAsyncExecutor() {
    return asyncServiceExecutor();
  }

  @Override
  public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
    return (throwable, method, objects) -> {
      StringBuilder sb = new StringBuilder();
      for (Object param : objects) {
        sb.append(param).append(",");
      }
      log.error("Exception message - {},Method name - {},Parameter value - {}", throwable.getMessage(), method.getName(), sb.toString());
    };

  }
}

如何使用

@Autowired  
private ThreadPoolTaskExecutor threadPoolTaskExecutor;

public void test(){
 CompletableFuture<Void> userFuture = CompletableFuture.runAsync(() -> System.out.println(111), threadPoolTaskExecutor);
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 深入了解Java設(shè)計(jì)模式之UML類圖

    深入了解Java設(shè)計(jì)模式之UML類圖

    UML?即?Unified?Modeling?Language?統(tǒng)一建模語(yǔ)言,是用來(lái)設(shè)計(jì)軟件的可視化建模語(yǔ)言。本文就帶大家了解一下UML中類圖的定義與使用,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-11-11
  • Java如何設(shè)置PDF文檔背景色詳解

    Java如何設(shè)置PDF文檔背景色詳解

    這篇文章主要介紹了Java如何設(shè)置PDF文檔背景色詳解,一般生成的PDF文檔默認(rèn)的文檔底色為白色,我們可以通過(guò)一定方法來(lái)更改文檔的背景色,以達(dá)到文檔美化以及保護(hù)雙眼的作用。 以下內(nèi)容提供了Java編程來(lái)設(shè)置PDF背景色的方法,需要的朋友可以參考下
    2019-07-07
  • Java遞歸算法的使用分析

    Java遞歸算法的使用分析

    本篇文章介紹了,在Java中遞歸算法的使用分析。需要的朋友參考下
    2013-04-04
  • java與C 代碼運(yùn)行效率的對(duì)比(整理)

    java與C 代碼運(yùn)行效率的對(duì)比(整理)

    最近和朋友無(wú)意間討論起了 有關(guān)java 和C 的 效率問(wèn)題, (我是java 推介者, 他是 c 語(yǔ)言推介者, 他做的是嵌入式)故,想通過(guò)網(wǎng)絡(luò)查詢一下, 總結(jié)一下,兩者到底效率如何,其有何差異,原因又是啥?各種優(yōu)勢(shì)有在何處?
    2021-04-04
  • 如何將Java與C#時(shí)間進(jìn)行互相轉(zhuǎn)換

    如何將Java與C#時(shí)間進(jìn)行互相轉(zhuǎn)換

    這篇文章主要介紹了Java與C#時(shí)間互轉(zhuǎn)的方法以及JAVA日期、C#日期計(jì)算說(shuō)明,需要的朋友可以參考下
    2022-11-11
  • springcloud結(jié)合bytetcc實(shí)現(xiàn)數(shù)據(jù)強(qiáng)一致性原理解析

    springcloud結(jié)合bytetcc實(shí)現(xiàn)數(shù)據(jù)強(qiáng)一致性原理解析

    這篇文章主要介紹了springcloud結(jié)合bytetcc實(shí)現(xiàn)數(shù)據(jù)強(qiáng)一致性原理解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Java實(shí)現(xiàn)猜數(shù)字小游戲代碼

    Java實(shí)現(xiàn)猜數(shù)字小游戲代碼

    大家好,本篇文章主要講的是Java實(shí)現(xiàn)猜數(shù)字小游戲代碼,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-01-01
  • SpringBoot Data JPA 關(guān)聯(lián)表查詢的方法

    SpringBoot Data JPA 關(guān)聯(lián)表查詢的方法

    這篇文章主要介紹了SpringBoot Data JPA 關(guān)聯(lián)表查詢的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • SpringBoot結(jié)合JWT實(shí)現(xiàn)用戶登錄、注冊(cè)、鑒權(quán)

    SpringBoot結(jié)合JWT實(shí)現(xiàn)用戶登錄、注冊(cè)、鑒權(quán)

    用戶登錄、注冊(cè)及鑒權(quán)是我們基本所有系統(tǒng)必備的,也是很核心重要的一塊,本文主要介紹了SpringBoot結(jié)合JWT實(shí)現(xiàn)用戶登錄、注冊(cè)、鑒權(quán),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2023-05-05
  • Springboot集成Mybatis-Flex的示例詳解

    Springboot集成Mybatis-Flex的示例詳解

    Mybatis-Flex 是一個(gè)優(yōu)雅的?Mybatis 增強(qiáng)框架,它非常輕量、同時(shí)擁有極高的性能與靈活性,本文主要介紹了Springboot集成Mybatis-Flex的示例詳解,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01

最新評(píng)論