成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

springboot 異步回調(diào)

BingqiChen / 2572人閱讀

摘要:定義異步方法,使用來返回異步調(diào)用的結(jié)果開始做任務(wù)一完成任務(wù)一,當(dāng)前線程,耗時(shí)毫秒任務(wù)一完成開始做任務(wù)二完成任務(wù)二,當(dāng)前線程,耗時(shí)毫秒任務(wù)二完成開始做任務(wù)三完成任務(wù)三,當(dāng)前線程,耗時(shí)毫秒任務(wù)三完成調(diào)用執(zhí)行異步回調(diào)異步回調(diào)結(jié)束調(diào)用結(jié)果開

定義異步方法,使用Future來返回異步調(diào)用的結(jié)果
    @Async
    public Future firstTask() throws InterruptedException {
        System.out.println("開始做任務(wù)一");
        long start = System.currentTimeMillis();
        Thread.sleep(random.nextInt(10000));
        long end = System.currentTimeMillis();
        System.out.println("完成任務(wù)一,當(dāng)前線程:" + Thread.currentThread().getName() + ",耗時(shí):" + (end - start) + "毫秒");
        return new AsyncResult<>("任務(wù)一完成");
    }

    @Async
    public Future secondTask() throws InterruptedException {
        System.out.println("開始做任務(wù)二");
        long start = System.currentTimeMillis();
        Thread.sleep(random.nextInt(10000));
        long end = System.currentTimeMillis();
        System.out.println("完成任務(wù)二,當(dāng)前線程:" + Thread.currentThread().getName() + ",耗時(shí):" + (end - start) + "毫秒");
        return new AsyncResult<>("任務(wù)二完成");
    }

    @Async
    public Future thirdTask() throws InterruptedException {
        System.out.println("開始做任務(wù)三");
        long start = System.currentTimeMillis();
        Thread.sleep(random.nextInt(10000));
        long end = System.currentTimeMillis();
        System.out.println("完成任務(wù)三,當(dāng)前線程:" + Thread.currentThread().getName() + ",耗時(shí):" + (end - start) + "毫秒");
        return new AsyncResult<>("任務(wù)三完成");
    }
調(diào)用
@GetMapping("test-future")
    public void testFuture() {
        try {
            Future result1 = asyncService.firstTask();
            Future result2 = asyncService.secondTask();
            Future result3 = asyncService.thirdTask();
            while (true) {
                if (result1.isDone() && result2.isDone() && result3.isDone()) {
                    System.out.println("執(zhí)行異步回調(diào)");
                    break;
                }
            }
            System.out.println("異步回調(diào)結(jié)束");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
調(diào)用結(jié)果
開始做任務(wù)一
開始做任務(wù)二
開始做任務(wù)三
完成任務(wù)二,當(dāng)前線程:task-2,耗時(shí):896毫秒
完成任務(wù)一,當(dāng)前線程:task-1,耗時(shí):7448毫秒
完成任務(wù)三,當(dāng)前線程:task-3,耗時(shí):7901毫秒
執(zhí)行異步回調(diào)
異步回調(diào)結(jié)束

代碼:異步回調(diào)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/77587.html

相關(guān)文章

  • springboot ListenableFuture 異步回調(diào)

    摘要:定義模擬耗時(shí)操作調(diào)用失敗調(diào)用成功調(diào)用執(zhí)行順序循環(huán)循環(huán)調(diào)用成功代碼異步回調(diào) 定義ListenableFuture public void getListenableFuture() { ListenableFutureTask task = new ListenableFutureTask(new Callable() { @Override ...

    caikeal 評(píng)論0 收藏0
  • SpringBoot Kotlin 系列之HTML與WebFlux

    摘要:上一章我們提到過與,對(duì)于具體的介紹沒說到,這一章我在這里簡單介紹一下,既然提到和,那肯定得提到什么是響應(yīng)式編程,什么是。 showImg(https://segmentfault.com/img/remote/1460000018819338?w=1024&h=500); 上一章我們提到過Mono 與 Flux,對(duì)于具體的介紹沒說到,這一章我在這里簡單介紹一下,既然提到Mono和Flu...

    crossoverJie 評(píng)論0 收藏0
  • springboot注解總結(jié)

    摘要:解決注解不回滾檢查你方法是不是的。之后新加入的注解,原來返回需要和配合。和為異步注解,放到方法上,表示調(diào)用該方法的線程與此方法異步執(zhí)行,需要配合注解使用。是中的標(biāo)注,是為了控制返回的字符串顯示哪些字段。 @SpringBootApplication = (默認(rèn)屬性)@Configuration + @EnableAutoConfiguration + @ComponentScan。 @...

    happyfish 評(píng)論0 收藏0
  • Netty(二) 從線程模型的角度看 Netty 為什么是高性能的?

    摘要:主從多線程該模型將客戶端連接那一塊的線程也改為多線程,稱為主線程。同時(shí)也是多個(gè)子線程來處理事件響應(yīng),這樣無論是連接還是事件都是高性能的。多線程提高并發(fā)效率。 showImg(https://segmentfault.com/img/remote/1460000015484190?w=1399&h=876); 前言 在之前的 SpringBoot 整合長連接心跳機(jī)制 一文中認(rèn)識(shí)了 Net...

    G9YH 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<