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

springboot使用線程池(ThreadPoolTaskExecutor)示例

 更新時間:2022年01月23日 17:25:36   作者:返回主頁云深小麥  
大家好,本篇文章主要講的是springboot使用線程池(ThreadPoolTaskExecutor)示例,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽

代碼倉庫:gitee

線程池創(chuàng)建

@Configuration
@EnableAsync
public class TaskPoolConfig {

    @Bean("syncExecutorPool")
    public Executor taskExecutor() {
        ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
        // 核心池大小
        taskExecutor.setCorePoolSize(5);
        // 最大線程數(shù)
        taskExecutor.setMaxPoolSize(10);
        // 隊列程度
        taskExecutor.setQueueCapacity(100);
        // 線程空閑時間
        taskExecutor.setKeepAliveSeconds(60);
        // 線程前綴名稱
        taskExecutor.setThreadNamePrefix("syncExecutor--");
        // 該方法用來設(shè)置 線程池關(guān)閉 的時候 等待 所有任務(wù)都完成后,再繼續(xù) 銷毀 其他的 Bean,
        // 這樣這些 異步任務(wù) 的 銷毀 就會先于 數(shù)據(jù)庫連接池對象 的銷毀。
        taskExecutor.setWaitForTasksToCompleteOnShutdown(true);
        // 任務(wù)的等待時間 如果超過這個時間還沒有銷毀就 強制銷毀,以確保應(yīng)用最后能夠被關(guān)閉,而不是阻塞住。
        taskExecutor.setAwaitTerminationSeconds(60);
        // 線程不夠用時由調(diào)用的線程處理該任務(wù)
        taskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
        return taskExecutor;
    }
}

線程池參數(shù)

核心線程數(shù)量:CorePoolSize
看業(yè)務(wù)場景設(shè)置(我通常設(shè)置為CPU核心*1)

最大線程數(shù)量:MaxPoolSize
當核心線程數(shù)量都在使用狀態(tài)時,會調(diào)用最大線程數(shù)量里的線程,使用的總線程不會超過最大線程數(shù)量,其余則等待(我通常設(shè)置為CPU核心*2)

隊列程度:QueueCapacity
線程隊列的大小

線程空閑時間:KeepAliveSeconds

線程前綴名稱:ThreadNamePrefix

停機策略:WaitForTasksToCompleteOnShutdown
該方法用來設(shè)置 線程池關(guān)閉 的時候 等待 所有任務(wù)都完成后,再繼續(xù) 銷毀 其他的 Bean,這樣這些 異步任務(wù) 的 銷毀 就會先于 數(shù)據(jù)庫連接池對象 的銷毀。

任務(wù)的等待時間:AwaitTerminationSeconds
任務(wù)的等待時間 如果超過這個時間還沒有銷毀就 強制銷毀,以確保應(yīng)用最后能夠被關(guān)閉,而不是阻塞住

拒接策略:RejectedExecutionHandler
線程不夠用時由調(diào)用的線程處理該任務(wù)

線程池測試1(核心線程數(shù)量)

結(jié)果:線程池的核心線程數(shù)量輪訓(xùn)執(zhí)行

線程池測試2(當核心線程數(shù)量和最大線程數(shù)量不夠時)

隨機睡眠0-10000毫秒
new Random().nextInt(10000)

結(jié)果:

當5個核心線程數(shù)量不夠用時,使用最大線程數(shù)量里的線程
當最大線程數(shù)量不夠用時,使用主線程執(zhí)行該任務(wù)

// 線程不夠用時由調(diào)用的線程處理該任務(wù)
taskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());

總結(jié)

到此這篇關(guān)于springboot使用線程池(ThreadPoolTaskExecutor)示例的文章就介紹到這了,更多相關(guān)springboot線程池內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于SpringBoot與Mybatis實現(xiàn)SpringMVC Web項目

    基于SpringBoot與Mybatis實現(xiàn)SpringMVC Web項目

    這篇文章主要介紹了基于SpringBoot與Mybatis實現(xiàn)SpringMVC Web項目的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • SpringBoot?Application核心注解詳解

    SpringBoot?Application核心注解詳解

    進入到@SpringBootApplication的源碼,可以看到里面組合了三個我們感興趣的注解@ComponentScan、@EnableAutoConfiguration、@SpringBootConfiguration,我們一一分析這三個注解
    2022-10-10
  • Java中的日期時間處理及格式化處理

    Java中的日期時間處理及格式化處理

    這篇文章主要介紹了Java中的日期時間處理及格式化處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Spring詳細講解7種事務(wù)傳播方式

    Spring詳細講解7種事務(wù)傳播方式

    Spring事務(wù)傳播機制是指,包含多個事務(wù)的方法在相互調(diào)用時,事務(wù)是如何在這些方法間傳播的。本文通過示例詳細介紹了Spring的事務(wù)傳播機制,需要的可以參考一下
    2023-01-01
  • springcloud-gateway整合jwt+jcasbin實現(xiàn)權(quán)限控制的詳細過程

    springcloud-gateway整合jwt+jcasbin實現(xiàn)權(quán)限控制的詳細過程

    這篇文章主要介紹了springcloud-gateway整合jwt+jcasbin實現(xiàn)權(quán)限控制,基于springboot+springcloud+nacos的簡單分布式項目,項目交互采用openFeign框架,單獨提取出來成為一個獨立的model,需要的朋友可以參考下
    2023-02-02
  • Spring項目如何實現(xiàn)帶請求鏈路id的日志記錄

    Spring項目如何實現(xiàn)帶請求鏈路id的日志記錄

    我們在做項目的時候通常需要通過請求日志來排查定位線上問題,如果日志比較多而我們又需要查找整個請求的全部日志的時候會比較困難,下面我們就來看看如何用java aop實現(xiàn)請求id的日志記錄吧
    2024-12-12
  • Springboot2 集成 druid 加密數(shù)據(jù)庫密碼的配置方法

    Springboot2 集成 druid 加密數(shù)據(jù)庫密碼的配置方法

    這篇文章給大家介紹Springboot2 集成 druid 加密數(shù)據(jù)庫密碼的配置方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-07-07
  • Java線程之間數(shù)據(jù)傳遞的實現(xiàn)示例(4種)

    Java線程之間數(shù)據(jù)傳遞的實現(xiàn)示例(4種)

    我們經(jīng)常會遇到父子線程數(shù)據(jù)傳遞(非調(diào)用參數(shù))的場景,本文主要介紹了Java線程之間數(shù)據(jù)傳遞的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • SpringBoot3.x接入Security6.x實現(xiàn)JWT認證的完整步驟

    SpringBoot3.x接入Security6.x實現(xiàn)JWT認證的完整步驟

    這篇文章主要介紹了Spring?Boot?3.x中Spring?Security?6.x的安全配置變化,特別是JWT過濾器的工作原理和配置方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-02-02
  • 基于Security實現(xiàn)OIDC單點登錄的詳細流程

    基于Security實現(xiàn)OIDC單點登錄的詳細流程

    本文主要是給大家介紹 OIDC 的核心概念以及如何通過對 Spring Security 的授權(quán)碼模式進行擴展來實現(xiàn) OIDC 的單點登錄。對Security實現(xiàn)OIDC單點登錄的詳細過程感興趣的朋友,一起看看吧
    2021-09-09

最新評論

东兰县| 永丰县| 宁远县| 合山市| 鄂托克旗| 英吉沙县| 宜都市| 湟中县| 固镇县| 苏尼特右旗| 疏勒县| 金湖县| 鄂托克前旗| 连州市| 青海省| 河东区| 陈巴尔虎旗| 梧州市| 定州市| 唐河县| 东乌| 青岛市| 兰溪市| 婺源县| 长宁县| 资兴市| 神木县| 萨迦县| 霍州市| 临清市| 濮阳县| 南投县| 永修县| 巴东县| 昌黎县| 崇左市| 阜宁县| 博乐市| 宁城县| 溧水县| 建水县|