真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

在springboot中如何使用@Async實現(xiàn)異步調用

在spring boot中如何使用@Async實現(xiàn)異步調用?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

在興和等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供網站設計制作、網站設計 網站設計制作按需開發(fā),公司網站建設,企業(yè)網站建設,品牌網站設計,成都營銷網站建設,外貿營銷網站建設,興和網站建設費用合理。

什么是”異步調用”與”同步調用”

“同步調用”就是程序按照一定的順序依次執(zhí)行,,每一行程序代碼必須等上一行代碼執(zhí)行完畢才能執(zhí)行;”異步調用”則是只要上一行代碼執(zhí)行,無需等待結果的返回就開始執(zhí)行本身任務。
通常情況下,”同步調用”執(zhí)行程序所花費的時間比較多,執(zhí)行效率比較差。所以,在代碼本身不存在依賴關系的話,我們可以考慮通過”異步調用”的方式來并發(fā)執(zhí)行。

“異步調用”

在 spring boot 框架中,只要提過@Async注解就能獎普通的同步任務改為異步調用任務。
注意: @Async所修飾的函數(shù)不要定義為static類型,這樣異步調用不會生效

1. 開啟@Async注解

在Spring Boot主類添加@EnableAsync注解

2. 定義異步任務

定義Task類,創(chuàng)建三個處理函數(shù)分別模擬三個執(zhí)行任務的操作,操作消耗時間隨機?。?0秒內)。

@Component
public class Task {

  //定義一個隨機對象.
  public static Random random =new Random();

  @Async //加入"異步調用"注解
  public void doTaskOne() throws InterruptedException {
    System.out.println("開始執(zhí)行任務一");
    long start = System.currentTimeMillis();
    Thread.sleep(random.nextInt(10000));
    long end = System.currentTimeMillis();
    System.out.println("完成任務一,耗時:" + (end - start) + "毫秒");
  }

  @Async
  public void doTaskTwo() throws InterruptedException {
    System.out.println("開始執(zhí)行任務二");
    long start = System.currentTimeMillis();
    Thread.sleep(random.nextInt(10000));
    long end = System.currentTimeMillis();
    System.out.println("完成任務二,耗時:" + (end - start) + "毫秒");
  }

  @Async
  public void doTaaskThree() throws InterruptedException {
    System.out.println("開始執(zhí)行任務三");
    long start = System.currentTimeMillis();
    Thread.sleep(random.nextInt(10000));
    long end = System.currentTimeMillis();
    System.out.println("完成任務三,耗時:" + (end - start) + "毫秒");
  }
}

3. 創(chuàng)建Controller進行測試

注意@Autowired注入類,因為這個類已經被 Spring 管理了。如果使用 new 來獲得線程類將不會執(zhí)行異步效果,這里涉及到在 Spring 中使用多線程。

@Controller
public class TaskController {

  @Autowired
  private Task TASK;

  @ResponseBody
  @RequestMapping("/task")
  public String task() throws Exception {
    System.out.println("開始執(zhí)行Controller任務");
    long start = System.currentTimeMillis();
    TASK.doTaskOne();
    TASK.doTaskTwo();
    TASK.doTaaskThree();
    long end = System.currentTimeMillis();
    System.out.println("完成Controller任務,耗時:" + (end - start) + "毫秒");
    return "success";
  }
}

4. 多次調用

訪問 http://localhost:8080/task 截圖:

在spring boot中如何使用@Async實現(xiàn)異步調用

看完上述內容,你們掌握在spring boot中如何使用@Async實現(xiàn)異步調用的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


文章名稱:在springboot中如何使用@Async實現(xiàn)異步調用
網站鏈接:http://weahome.cn/article/ihjcho.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部