激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

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

服務(wù)器之家 - 編程語言 - Java教程 - springboot 異步調(diào)用的實現(xiàn)方法

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

2021-07-31 12:17lijingyulee Java教程

這篇文章主要介紹了springboot 異步調(diào)用的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

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

同步

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

異步

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

同步代碼

service層:

?
1
2
3
4
5
6
public void test() throws interruptedexception {
    thread.sleep(2000);
    for (int i = 0; i < 1000; i++) {
      system.out.println("i = " + i);
    }
  }

controller層:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@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";
  }
}

瀏覽器中請求 http://localhost:8080/test

控制臺打印順序:

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

異步代碼

在service層的test方法上加上@async注解,同時為了是異步生效在啟動類上加上@enableasync注解

service層:

?
1
2
3
4
5
6
7
@async
 public void test() throws interruptedexception {
   thread.sleep(2000);
   for (int i = 0; i < 1000; i++) {
     system.out.println("i = " + i);
   }
 }

controller不變,啟動類加上@enableasync:

?
1
2
3
4
5
6
7
@springbootapplication
@enableasync
public class asyncapplication {
  public static void main(string[] args) {
    springapplication.run(asyncapplication.class, args);
  }
}

再次請求打印順序如下:

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

代碼: async

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://segmentfault.com/a/1190000018838942

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: av在线看网站 | 全黄毛片 | 欧美日韩爱爱视频 | 国产成人免费高清激情视频 | 国产成人在线看 | 国产无遮挡一区二区三区毛片日本 | 精国产品一区二区三区 | www久| 黄色片小说 | 久久精品欧美视频 | 91精品国产综合久久久动漫日韩 | 久久噜噜噜精品国产亚洲综合 | 国产中出视频 | 国产91免费看 | 91高清国产 | 久久国产中文 | 99精品热视频 | 欧美日韩在线视频一区二区 | 性aaa| 91九色视频在线观看 | 欧美日韩网站在线观看 | 综合99| 久久久三区 | 久久久久免费精品 | 日韩视频一区二区三区在线观看 | 亚洲爱爱图 | 国产精品av久久久久久久久久 | 美女扒开腿让男生桶爽网站 | 黄色成人短视频 | 一本色道精品久久一区二区三区 | 色视频在线观看 | 视频在线中文字幕 | 99999久久久久久 | 亚洲免费永久 | 久久精品中文字幕一区 | 在线播放中文 | 久久一区三区 | 在线小视频国产 | 午夜精品在线视频 | 亚洲午夜免费 | 欧美日韩在线影院 |