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

springboot 異步調(diào)用的實(shí)現(xiàn)方法

 更新時(shí)間:2019年04月12日 09:33:30   作者:lijingyulee  
這篇文章主要介紹了springboot 異步調(diào)用的實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧

說異步調(diào)用前,我們說說它對(duì)應(yīng)的同步調(diào)用。通常開發(fā)過程中,一般上我們都是同步調(diào)用,即:程序按定義的順序依次執(zhí)行的過程,每一行代碼執(zhí)行過程必須等待上一行代碼執(zhí)行完畢后才執(zhí)行。而異步調(diào)用指:程序在執(zhí)行時(shí),無(wú)需等待執(zhí)行的返回值可繼續(xù)執(zhí)行后面的代碼。顯而易見,同步有依賴相關(guān)性,而異步?jīng)]有,所以異步可并發(fā)執(zhí)行,可提高執(zhí)行效率,在相同的時(shí)間做更多的事情。

同步

程序按照定義順序依次執(zhí)行,每一行程序都必須等待上一行程序執(zhí)行完成之后才能執(zhí)行,就是在發(fā)出一個(gè)功能調(diào)用時(shí),在沒有得到結(jié)果之前,該調(diào)用就不返回。

異步

程序在順序執(zhí)行時(shí),不等待異步調(diào)用的語(yǔ)句返回結(jié)果就執(zhí)行后面的程序,當(dāng)一個(gè)異步過程調(diào)用發(fā)出后,調(diào)用者不能立刻得到結(jié)果。

同步代碼

Service層:

public void test() throws InterruptedException {
    Thread.sleep(2000);
    for (int i = 0; i < 1000; i++) {
      System.out.println("i = " + i);
    }
  }

Controller層:

  @GetMapping("test")
  public String test() {
    try {
      Thread.sleep(1000);
      System.out.println("主線程開始");
      for (int j = 0; j < 100; j++) {
        System.out.println("j = " + j);
      }
      asyncService.test();
      System.out.println("主線程結(jié)束");
      return "async";
    } catch (InterruptedException e) {
      e.printStackTrace();
      return "fail";
    }
  }

瀏覽器中請(qǐng)求 http://localhost:8080/test

控制臺(tái)打印順序:

  • 主線程開始
  • 打印j循環(huán)
  • 打印i循環(huán)
  • 主線程結(jié)束

異步代碼

在Service層的test方法上加上@Async注解,同時(shí)為了是異步生效在啟動(dòng)類上加上@EnableAsync注解

Service層:

 @Async
  public void test() throws InterruptedException {
    Thread.sleep(2000);
    for (int i = 0; i < 1000; i++) {
      System.out.println("i = " + i);
    }
  }

Controller不變,啟動(dòng)類加上@EnableAsync:

@SpringBootApplication
@EnableAsync
public class AsyncApplication {
  public static void main(String[] args) {
    SpringApplication.run(AsyncApplication.class, args);
  }
}

再次請(qǐng)求打印順序如下:

  1. 主線程開始
  2. 打印j循環(huán)
  3. 主線程結(jié)束
  4. 打印i循環(huán)

代碼: async

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論