最新国产好看的视频,伊人天堂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ù)的等待時間 如果超過這個時間還沒有銷毀就 強(qiáng)制銷毀,以確保應(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
當(dāng)核心線程數(shù)量都在使用狀態(tài)時,會調(diào)用最大線程數(shù)量里的線程,使用的總線程不會超過最大線程數(shù)量,其余則等待(我通常設(shè)置為CPU核心*2)

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

線程空閑時間:KeepAliveSeconds

線程前綴名稱:ThreadNamePrefix

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

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

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

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

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

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

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

結(jié)果:

當(dāng)5個核心線程數(shù)量不夠用時,使用最大線程數(shù)量里的線程
當(dāng)最大線程數(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核心注解詳解

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

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

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

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

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

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

    這篇文章主要介紹了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ù)庫密碼的配置方法,本文給大家介紹的非常詳細(xì),對大家的學(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)示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • SpringBoot3.x接入Security6.x實現(xiàn)JWT認(rèn)證的完整步驟

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

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

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

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

最新評論

奎屯市| 竹北市| 清远市| 石棉县| 长治县| 滕州市| 阿拉尔市| 吉安市| 澳门| 金塔县| 宁明县| 基隆市| 承德市| 陕西省| 永登县| 当涂县| 安平县| 盐源县| 绥阳县| 毕节市| 赣榆县| 南宫市| 鱼台县| 崇仁县| 佛冈县| 海原县| 罗甸县| 富源县| 探索| 珲春市| 全州县| 公主岭市| 喀什市| 屏东县| 游戏| 义乌市| 星子县| 黄冈市| 和林格尔县| 南京市| 安达市|