最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

定義線程池

@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);
    //配置隊列大小
    executor.setQueueCapacity(50);
    //用來設(shè)置線程池關(guān)閉的時候等待所有任務(wù)都完成再繼續(xù)銷毀其他的Bean
    executor.setWaitForTasksToCompleteOnShutdown(true);
    //設(shè)置線程池中任務(wù)的等待時間,如果超過這個時候還沒有銷毀就強(qiáng)制銷毀,以確保應(yīng)用最后能夠被關(guān)閉,而不是阻塞住
    executor.setAwaitTerminationSeconds(60);
    //配置線程池中的線程的名稱前綴
    executor.setThreadNamePrefix("async-service-");
    // rejection-policy:當(dāng)pool已經(jīng)達(dá)到max size的時候,如何處理新任務(wù)
    // CALLER_RUNS:不在新線程中執(zhí)行任務(wù),而是有調(diào)用者所在的線程來執(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);
}

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

相關(guān)文章

  • Mybatis?在?insert?插入操作后返回主鍵?id的操作方法

    Mybatis?在?insert?插入操作后返回主鍵?id的操作方法

    這篇文章主要介紹了Mybatis?在?insert?插入操作后返回主鍵?id的操作方法,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • java啟動參數(shù)之謎的排查過程

    java啟動參數(shù)之謎的排查過程

    在日常操作中,相信很多人對Java啟動參數(shù)存在疑惑,下面這篇文章主要給大家介紹了關(guān)于java啟動參數(shù)之謎的排查過程,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • 使用Java將字符串在ISO-8859-1和UTF-8之間相互轉(zhuǎn)換

    使用Java將字符串在ISO-8859-1和UTF-8之間相互轉(zhuǎn)換

    大家都知道在一些情況下,我們需要特殊的編碼格式,如:UTF-8,但是系統(tǒng)默認(rèn)的編碼為ISO-8859-1,遇到這個問題,該如何對字符串進(jìn)行兩個編碼的轉(zhuǎn)換呢,下面小編給大家分享下java中如何在ISO-8859-1和UTF-8之間相互轉(zhuǎn)換,感興趣的朋友一起看看吧
    2021-12-12
  • springboot多模塊項目mvn打包遇到存在依賴但卻無法發(fā)現(xiàn)符號問題

    springboot多模塊項目mvn打包遇到存在依賴但卻無法發(fā)現(xiàn)符號問題

    在SpringBoot多模塊項目中,如果遇到依賴存在但無法發(fā)現(xiàn)符號的問題,常見原因可能是pom.xml配置問題,例如,如果某個模塊僅作為依賴而不是啟動工程,不應(yīng)在其pom中配置spring-boot-maven-plugin插件,因為這將影響jar包的生成方式
    2024-09-09
  • Java ArrayList的底層實現(xiàn)方法

    Java ArrayList的底層實現(xiàn)方法

    今天小編就為大家分享一篇Java ArrayList的底層實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • spring-data-jpa實現(xiàn)增刪改查以及分頁操作方法

    spring-data-jpa實現(xiàn)增刪改查以及分頁操作方法

    下面小編就為大家分享一篇spring-data-jpa實現(xiàn)增刪改查以及分頁操作方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • SpringBoot Test及注解的使用詳解

    SpringBoot Test及注解的使用詳解

    這篇文章主要介紹了SpringBoot Test及注解的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • 解決Java中的強(qiáng)制類型轉(zhuǎn)換和二進(jìn)制表示問題

    解決Java中的強(qiáng)制類型轉(zhuǎn)換和二進(jìn)制表示問題

    這篇文章主要介紹了解決Java中的強(qiáng)制類型轉(zhuǎn)換和二進(jìn)制表示問題,需要的朋友可以參考下
    2019-05-05
  • 新手入門學(xué)習(xí)Spring Freemarker教程解析

    新手入門學(xué)習(xí)Spring Freemarker教程解析

    這篇文章主要介紹了新手入門學(xué)習(xí)Freemarker教程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • Java中的DecimalFormat用法解析

    Java中的DecimalFormat用法解析

    這篇文章主要介紹了Java中的DecimalFormat用法解析,DecimalFormat是Java中用于格式化數(shù)字的類,它提供了一種簡單而靈活的方式來格式化數(shù)字,包括指定小數(shù)位數(shù)、千位分隔符、貨幣符號等,需要的朋友可以參考下
    2023-10-10

最新評論

桂林市| 昌宁县| 宜君县| 河间市| 大庆市| 吴堡县| 海淀区| 毕节市| 玉门市| 密山市| 凤庆县| 禄劝| 潜山县| 阿鲁科尔沁旗| 成都市| 宜昌市| 金门县| 天津市| 米脂县| 株洲市| 双江| 绥棱县| 宿州市| 出国| 信阳市| 西和县| 响水县| 云梦县| 西和县| 卢氏县| 蒙城县| 凉山| 新晃| 宁南县| 博白县| 韶山市| 堆龙德庆县| 通江县| 阳谷县| 宁晋县| 筠连县|