国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

springboot 異步調(diào)用

weij / 439人閱讀

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

同步

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

異步

程序在順序執(zhí)行時(shí),不等待異步調(diào)用的語(yǔ)句返回結(jié)果就執(zhí)行后面的程序,當(dāng)一個(gè)異步過(guò)程調(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)求打印順序如下:

主線程開始

打印j循環(huán)

主線程結(jié)束

打印i循環(huán)

代碼: async

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/77551.html

相關(guān)文章

  • springboot異步調(diào)用@Async

    摘要:異步處理方式調(diào)用之后,不返回任何數(shù)據(jù)。在有返回值的異步調(diào)用中,異步處理拋出異常,會(huì)直接拋出異常,異步任務(wù)結(jié)束,原有處理結(jié)束執(zhí)行。 1.使用背景 在項(xiàng)目中,當(dāng)訪問其他人的接口較慢或者做耗時(shí)任務(wù)時(shí),不想程序一直卡在耗時(shí)任務(wù)上,想程序能夠并行執(zhí)行,我們可以使用多線程來(lái)并行的處理任務(wù),也可以使用spring提供的異步處理方式@Async。 2.異步處理方式 調(diào)用之后,不返回任何數(shù)據(jù)。 調(diào)用之...

    gityuan 評(píng)論0 收藏0
  • springboot 異步回調(diào)

    摘要:定義異步方法,使用來(lái)返回異步調(diào)用的結(jié)果開始做任務(wù)一完成任務(wù)一,當(dāng)前線程,耗時(shí)毫秒任務(wù)一完成開始做任務(wù)二完成任務(wù)二,當(dāng)前線程,耗時(shí)毫秒任務(wù)二完成開始做任務(wù)三完成任務(wù)三,當(dāng)前線程,耗時(shí)毫秒任務(wù)三完成調(diào)用執(zhí)行異步回調(diào)異步回調(diào)結(jié)束調(diào)用結(jié)果開 定義異步方法,使用Future來(lái)返回異步調(diào)用的結(jié)果 @Async public Future firstTask() throws Int...

    BingqiChen 評(píng)論0 收藏0
  • springboot ListenableFuture 異步回調(diào)

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

    caikeal 評(píng)論0 收藏0
  • springboot配置線程池使用多線程插入數(shù)據(jù)

    摘要:最開始是使用的正常的普通方式去寫入,但是量太大了,所以就嘗試使用多線程來(lái)寫入。下面我們就來(lái)介紹一下怎么使用多線程進(jìn)行導(dǎo)入。配置線程池我們需要?jiǎng)?chuàng)建一個(gè)類來(lái)設(shè)置線程池的各種配置。它可以使主線程一直等到所有的子線程執(zhí)行完之后再執(zhí)行。 前言: 最近在工作中需要將一大批數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)中,因?yàn)榉N種原因這些數(shù)據(jù)不能使用同步數(shù)據(jù)的方式來(lái)進(jìn)行復(fù)制,而是提供了一批文本,文本里面有很多行url地址,需要的...

    wenshi11019 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

weij

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<