国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - spring boot 使用@Async實現異步調用方法

spring boot 使用@Async實現異步調用方法

2020-09-19 18:57陽光早已褪色 Java教程

本篇文章主要介紹了spring boot 使用@Async實現異步調用方法,具有一定的參考價值,有興趣的可以了解一下。

使用@Async實現異步調用

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

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

“異步調用”

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

1. 開啟@Async注解

在Spring Boot主類添加@EnableAsync注解

2. 定義異步任務

定義Task類,創建三個處理函數分別模擬三個執行任務的操作,操作消耗時間隨機取(10秒內)。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
@Component
public class Task {
 
  //定義一個隨機對象.
  public static Random random =new Random();
 
  @Async //加入"異步調用"注解
  public void doTaskOne() throws InterruptedException {
    System.out.println("開始執行任務一");
    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("開始執行任務二");
    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("開始執行任務三");
    long start = System.currentTimeMillis();
    Thread.sleep(random.nextInt(10000));
    long end = System.currentTimeMillis();
    System.out.println("完成任務三,耗時:" + (end - start) + "毫秒");
  }
}

3. 創建Controller進行測試

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@Controller
public class TaskController {
 
  @Autowired
  private Task TASK;
 
  @ResponseBody
  @RequestMapping("/task")
  public String task() throws Exception {
    System.out.println("開始執行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實現異步調用方法

項目參考地址: https://github.com/FunriLy/springboot-study/tree/master/%E6%A1%88%E4%BE%8B7

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/u011244202/article/details/54864528

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产在线一区二区三区 | 亚洲国产一区二区a毛片 | 欧美成人精品一区二区男人看 | 亚洲视频在线一区 | 午夜av一区二区 | 欧美一区二区三区视频在线 | 欧美久久久久久久久久 | 亚洲精品第一区在线观看 | 在线亚洲免费 | 欧美v片| 国产高清精品在线 | 天天插天天操 | 亚洲视频精品一区 | 亚洲精品区 | 亚洲91| 欧美在线视频网 | 亚洲国产一区二区a毛片 | 日韩欧美精品一区二区三区 | 亚洲小视频 | 欧美三级网站 | 欧美亚洲91 | 这里只有精品在线视频观看 | 操操操操操操 | a欧美 | 九九视频在线 | 日本一区二区精品视频 | 国外成人在线视频网站 | 午夜在线小视频 | 免费在线黄色片 | 日本久久久 | 免费av在线网站 | 日韩视频中文字幕 | 亚洲综合中文字幕在线观看 | 黄色一级毛片 | 韩日在线 | 性福视频在线观看 | 欧洲亚洲视频 | 中文字幕一区二区三区日韩精品 | 亚洲精品一区二区三区在线观看 | 国产精品免费一区二区三区四区 | 亚洲一区在线免费观看 |