成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

springboot 異步回調

BingqiChen / 2601人閱讀

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

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

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

    @Async
    public Future thirdTask() throws InterruptedException {
        System.out.println("開始做任務三");
        long start = System.currentTimeMillis();
        Thread.sleep(random.nextInt(10000));
        long end = System.currentTimeMillis();
        System.out.println("完成任務三,當前線程:" + Thread.currentThread().getName() + ",耗時:" + (end - start) + "毫秒");
        return new AsyncResult<>("任務三完成");
    }
調用
@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í)行異步回調");
                    break;
                }
            }
            System.out.println("異步回調結束");
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
調用結果
開始做任務一
開始做任務二
開始做任務三
完成任務二,當前線程:task-2,耗時:896毫秒
完成任務一,當前線程:task-1,耗時:7448毫秒
完成任務三,當前線程:task-3,耗時:7901毫秒
執(zhí)行異步回調
異步回調結束

代碼:異步回調

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

轉載請注明本文地址:http://m.hztianpu.com/yun/77587.html

相關文章

  • springboot ListenableFuture 異步回調

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

    caikeal 評論0 收藏0
  • SpringBoot Kotlin 系列之HTML與WebFlux

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

    crossoverJie 評論0 收藏0
  • springboot注解總結

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

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

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

    G9YH 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<