亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

springboot 異步回調(diào)

BingqiChen / 2612人閱讀

摘要:定義異步方法,使用來返回異步調(diào)用的結(jié)果開始做任務(wù)一完成任務(wù)一,當前線程,耗時毫秒任務(wù)一完成開始做任務(wù)二完成任務(wù)二,當前線程,耗時毫秒任務(wù)二完成開始做任務(wù)三完成任務(wù)三,當前線程,耗時毫秒任務(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ù)一,當前線程:" + Thread.currentThread().getName() + ",耗時:" + (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ù)二,當前線程:" + Thread.currentThread().getName() + ",耗時:" + (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ù)三,當前線程:" + Thread.currentThread().getName() + ",耗時:" + (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ù)二,當前線程:task-2,耗時:896毫秒
完成任務(wù)一,當前線程:task-1,耗時:7448毫秒
完成任務(wù)三,當前線程:task-3,耗時:7901毫秒
執(zhí)行異步回調(diào)
異步回調(diào)結(jié)束

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

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

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/77587.html

相關(guān)文章

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

    摘要:定義模擬耗時操作調(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 評論0 收藏0
  • SpringBoot Kotlin 系列之HTML與WebFlux

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

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

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

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

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

    G9YH 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<