亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringBoot中的異步任務(wù)解析

 更新時間:2023年10月17日 10:28:54   作者:不服輸?shù)穆槿? 
這篇文章主要介紹了SpringBoot中的異步任務(wù)解析,SpringBoot 異步任務(wù)是一種在SpringBoot框架中使用的異步處理機制,可以提高系統(tǒng)的并發(fā)能力和響應(yīng)速度,需要的朋友可以參考下

默認(rèn)線程池:

使用方式: 開啟異步任務(wù),在啟動類上使用注解@EnableAsync啟動異步任務(wù),在需要異步執(zhí)行的任務(wù)上使用@Async標(biāo)注該方法為異步任務(wù)。

在這里插入圖片描述

在這里插入圖片描述

執(zhí)行任務(wù)效果:

在這里插入圖片描述

自定義線程池:

使用方式: 創(chuàng)建線程池配置類,對線程池核心線程數(shù)量、最大線程數(shù)量、空閑線程數(shù)量、任務(wù)隊列以及拒絕策略的設(shè)置,在線程池配置類上使用@Configuration進(jìn)行配置文件裝配,對需要異步執(zhí)行的任務(wù)上標(biāo)明線程池名稱即可使用指定的線程池執(zhí)行任務(wù),不標(biāo)注則為默認(rèn)線程池執(zhí)行。

//@Configuration
public class TheadPoolTaskConfig {

    // 核心線程數(shù)
    private static final int corePoolSize = 20;
    // 最大線程數(shù)
    private static final int maxPoolSize = 50;
    // 允許線程空閑時間
    private static final int keepAliveTime = 10;
    // 緩沖隊列大小
    private static final int queueCopcity = 200;
    // 線程池前綴
    private static final String threadNamePrefix = "Xyamc-Thread-Service-";


    @Bean("xyamcTaskExcutor")
    public ThreadPoolTaskExecutor startTask(){
        ThreadPoolTaskExecutor pool = new ThreadPoolTaskExecutor();
        pool.setCorePoolSize(corePoolSize);
        pool.setMaxPoolSize(maxPoolSize);
        pool.setQueueCapacity(queueCopcity);
        pool.setKeepAliveSeconds(keepAliveTime);
        pool.setThreadNamePrefix(threadNamePrefix);

        // 線程池拒絕策略
        pool.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
        pool.initialize();
        return pool;
    }
}

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

    @RequestMapping(value = "/test1", method = RequestMethod.GET)
    @ApiOperation(value = "執(zhí)行默認(rèn)線程池異步任務(wù)")
    public Result<?> test1(HttpServletRequest req, HttpServletResponse response) {
        iTestService.printSecond();
        return Result.ok("同步任務(wù)執(zhí)行成功!");
    }
    @Override
//    @Async("xyamcTaskExcutor")
    public void printSecond() {
        Date date = new Date();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
        log.info("異步任務(wù)開始執(zhí)行時間:{}", format.format(date));
        try {
            Thread.sleep(30000);
            Thread thread = Thread.currentThread();
            log.info("當(dāng)前線程名稱:{}", thread.getName());
            Date date1 = new Date();
            log.info("異步任務(wù)執(zhí)行結(jié)束時間:{}", format.format(date1));
        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }
        log.info("異步任務(wù)執(zhí)行成功!");
    }

線程池拒絕策略

在這里插入圖片描述

在這里插入圖片描述

DiscardPolicy 直接丟棄

在這里插入圖片描述

從上圖可知,線程沒有做任何處理,直接悄悄的丟棄。

AbortPolicy 直接拒絕策略

在這里插入圖片描述

從上圖可以看出,線程直接拋出拒絕異常。

DiscardOldestPolicy 棄老策略

在這里插入圖片描述

從上圖可以看出,線程會丟棄最開始進(jìn)去,然后嘗試重新執(zhí)行。

CallerRunsPolicy

在這里插入圖片描述

線程池沒有關(guān)閉,就交給線程本身自己去執(zhí)行。

到此這篇關(guān)于SpringBoot中的異步任務(wù)解析的文章就介紹到這了,更多相關(guān)SpringBoot異步任務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringMVC整合websocket實現(xiàn)消息推送及觸發(fā)功能

    SpringMVC整合websocket實現(xiàn)消息推送及觸發(fā)功能

    這篇文章主要為大家詳細(xì)介紹了SpringMVC整合websocket實現(xiàn)消息推送及觸發(fā)功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 一篇文章帶你了解Java 中序列化與反序列化

    一篇文章帶你了解Java 中序列化與反序列化

    這篇文章主要介紹了Java 序列化與反序列化(Serialization),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-07-07
  • 5分鐘讓你快速掌握java8 stream常用開發(fā)技巧

    5分鐘讓你快速掌握java8 stream常用開發(fā)技巧

    這篇文章主要給大家介紹了關(guān)于java8 stream常用開發(fā)技巧的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • springBoot整合RocketMQ及坑的示例代碼

    springBoot整合RocketMQ及坑的示例代碼

    這篇文章主要介紹了springBoot整合RocketMQ及坑的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • 淺談Spring事務(wù)傳播行為實戰(zhàn)

    淺談Spring事務(wù)傳播行為實戰(zhàn)

    這篇文章主要介紹了淺談Spring事務(wù)傳播行為實戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Java.lang.ArrayIndexOutOfBoundsException的報錯解決

    Java.lang.ArrayIndexOutOfBoundsException的報錯解決

    Java.lang.ArrayIndexOutOfBoundsException是一個常見的錯誤,通常由于訪問超出數(shù)組邊界的索引值導(dǎo)致,本文就詳細(xì)的介紹了解決方法,具有一定的參考價值,感興趣的可以了解一下
    2024-09-09
  • Java基礎(chǔ)入門 Swing中間容器的使用

    Java基礎(chǔ)入門 Swing中間容器的使用

    這篇文章主要介紹了Java基礎(chǔ)入門 Swing中間容器的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 使用Java橋接模式打破繼承束縛優(yōu)雅實現(xiàn)多維度變化

    使用Java橋接模式打破繼承束縛優(yōu)雅實現(xiàn)多維度變化

    這篇文章主要為大家介紹了使用Java橋接模式打破繼承束縛,優(yōu)雅實現(xiàn)多維度變化,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • 利用logback filter過濾某個類 屏蔽某個類

    利用logback filter過濾某個類 屏蔽某個類

    這篇文章主要介紹了利用logback filter過濾某個類 屏蔽某個類的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 如何在Eclipse中設(shè)置Oracle的JDBC

    如何在Eclipse中設(shè)置Oracle的JDBC

    以下是對在Eclipse中設(shè)置Oracle的JDBC的具體操作方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下
    2013-08-08

最新評論