最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java中的@Async異步功能詳解

 更新時(shí)間:2023年11月10日 08:32:11   作者:huayang183  
這篇文章主要介紹了Java中的@Async異步功能詳解,@Async注解,可以實(shí)現(xiàn)異步處理的功能,它可以有返回值,或者直接在新線(xiàn)程時(shí)并行執(zhí)行一個(gè)任務(wù),對(duì)于異步來(lái)說(shuō),它的執(zhí)行是有條件的,你需要把異步代碼塊放在單獨(dú)的類(lèi)里,需要的朋友可以參考下

Java中的@Async異步功能詳解

@Async注解,可以實(shí)現(xiàn)異步處理的功能,它可以有返回值,或者直接在新線(xiàn)程時(shí)并行執(zhí)行一個(gè)任務(wù),對(duì)于異步來(lái)說(shuō),它的執(zhí)行是有條件的,你需要把異步代碼塊放在單獨(dú)的類(lèi)里,當(dāng)spring在注入時(shí),才不會(huì)相互影響,因?yàn)楫惒绞且粋€(gè)比較特殊的代理。

異步入口

@EnableAsync

具體的異步方法

/**
 * 異常的類(lèi)型應(yīng)該和同步執(zhí)行的類(lèi)分開(kāi),這樣在ioc建立時(shí)不會(huì)相互干擾
 */
@Service
public class MessageService {
  @Async
  public void msg1() throws Exception {
 
    Thread.sleep(5000L);
    System.out.println("async1:" + LocalDateTime.now() +
        ",id:" + Thread.currentThread().getId());
  }
}

上面代碼中的異步,是一個(gè)沒(méi)有返回值的,一般像發(fā)送消息可以采用這種方式。

帶有返回值的異步

@Async
  public Future<String> asyncMethodWithReturnType() {
    System.out.println("Execute method asynchronously - "
        + Thread.currentThread().getName());
    try {
      Thread.sleep(5000);
      return new AsyncResult<String>("hello world !!!!");
    } catch (InterruptedException e) {
      //
    }
    return null;
  }

這種會(huì)返回一個(gè)委托對(duì)象Future,我們?nèi)绻M玫剿姆祷貢r(shí),需要在主程序中去監(jiān)聽(tīng)它,就是寫(xiě)在循環(huán),去等待它的返回結(jié)果。

Future<String> future = messageService.asyncMethodWithReturnType();
 
    while (true) { ///這里使用了循環(huán)判斷,等待獲取結(jié)果信息
      if (future.isDone()) { //判斷是否執(zhí)行完畢
        System.out.println("Result from asynchronous process - " + future.get());
        break;
      }
      System.out.println("Continue doing something else. ");
      System.out.println("main end:" + LocalDateTime.now() +
          ",id:" + Thread.currentThread().getId());
 
    }

上面代碼主程序在執(zhí)行到異步方法時(shí),由于遇到了while(true),所以會(huì)租塞,直到有返回結(jié)果為止。

到此這篇關(guān)于Java中的@Async異步功能詳解的文章就介紹到這了,更多相關(guān)@Async異步功能內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot實(shí)現(xiàn)PDF轉(zhuǎn)圖片的代碼示例

    SpringBoot實(shí)現(xiàn)PDF轉(zhuǎn)圖片的代碼示例

    在本文中,我們使用SpringBoot演示了如何將PDF文件轉(zhuǎn)換為一張或多張圖片,這些示例演示了如何使用Java編程語(yǔ)言與其他開(kāi)源技術(shù)集成,以實(shí)現(xiàn)各種文件格式之間的轉(zhuǎn)換,感興趣的小伙伴跟著小編一起來(lái)看看吧
    2024-08-08
  • SpringBoot自動(dòng)裝配之Condition深入講解

    SpringBoot自動(dòng)裝配之Condition深入講解

    @Conditional表示僅當(dāng)所有指定條件都匹配時(shí),組件才有資格注冊(cè)。該@Conditional注釋可以在以下任一方式使用:作為任何@Bean方法的方法級(jí)注釋、作為任何類(lèi)的直接或間接注釋的類(lèi)型級(jí)別注釋@Component,包括@Configuration類(lèi)、作為元注釋?zhuān)康氖墙M成自定義構(gòu)造型注釋
    2023-01-01
  • SpringBoot超詳細(xì)深入講解底層原理

    SpringBoot超詳細(xì)深入講解底層原理

    我們知道springboot內(nèi)部是通過(guò)spring框架內(nèi)嵌Tomcat實(shí)現(xiàn)的,當(dāng)然也可以?xún)?nèi)嵌jetty,undertow等等web框架;另外springboot還有一個(gè)特別重要的功能就是自動(dòng)裝配,這又是如何實(shí)現(xiàn)的呢
    2022-07-07
  • Spring Boot如何通過(guò)java -jar啟動(dòng)

    Spring Boot如何通過(guò)java -jar啟動(dòng)

    大家開(kāi)發(fā)的基于Spring Boot 的應(yīng)用 ,jar形式, 發(fā)布的時(shí)候,絕大部分都是使用java -jar 啟動(dòng)。本文主要介紹了Spring Boot如何通過(guò)java -jar啟動(dòng),一起來(lái)了解一下
    2021-05-05
  • Spring MVC請(qǐng)求參數(shù)的傳遞方式

    Spring MVC請(qǐng)求參數(shù)的傳遞方式

    Spring MVC是一種基于Model-View-Controller(MVC)設(shè)計(jì)模式的輕量級(jí)Web框架,用于Java應(yīng)用程序的開(kāi)發(fā),在處理HTTP請(qǐng)求時(shí),Spring MVC會(huì)涉及到請(qǐng)求參數(shù)的傳遞,本文給大家介紹了Spring MVC請(qǐng)求參數(shù)的傳遞方式,需要的朋友可以參考下
    2024-10-10
  • java并發(fā)編程_線(xiàn)程池的使用方法(詳解)

    java并發(fā)編程_線(xiàn)程池的使用方法(詳解)

    下面小編就為大家?guī)?lái)一篇java并發(fā)編程_線(xiàn)程池的使用方法(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • SpringBoot中的@ApiModelProperty注解作用

    SpringBoot中的@ApiModelProperty注解作用

    這篇文章主要介紹了SpringBoot中的@ApiModelProperty注解作用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
    2022-01-01
  • Spring中的DeferredImportSelector實(shí)現(xiàn)詳解

    Spring中的DeferredImportSelector實(shí)現(xiàn)詳解

    這篇文章主要介紹了Spring中的DeferredImportSelector實(shí)現(xiàn)詳解,兩個(gè)官方的實(shí)現(xiàn)類(lèi)AutoConfigurationImportSelector和ImportAutoConfigurationImportSelector都是Spring Boot后新增的實(shí)現(xiàn),需要的朋友可以參考下
    2024-01-01
  • java工廠(chǎng)實(shí)例BeanFactoryPostProcessor和BeanPostProcessor區(qū)別分析

    java工廠(chǎng)實(shí)例BeanFactoryPostProcessor和BeanPostProcessor區(qū)別分析

    這篇文章主要為大家介紹了BeanFactoryPostProcessor和BeanPostProcessor區(qū)別示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • JPA?@ManyToMany?報(bào)錯(cuò)StackOverflowError的解決

    JPA?@ManyToMany?報(bào)錯(cuò)StackOverflowError的解決

    這篇文章主要介紹了JPA?@ManyToMany?報(bào)錯(cuò)StackOverflowError的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12

最新評(píng)論

蒙城县| 兰坪| 黄骅市| 肇源县| 五原县| 工布江达县| 手游| 龙陵县| 微山县| 华容县| 高阳县| 新田县| 弋阳县| 海晏县| 色达县| 贡觉县| 河曲县| 黑龙江省| 札达县| 靖安县| 漳浦县| 临安市| 和龙市| 泉州市| 溧阳市| 股票| 宕昌县| 山阴县| 光泽县| 武清区| 雅江县| 沂南县| 宿松县| 陕西省| 双牌县| 平山县| 团风县| 高雄市| 南雄市| 南京市| 枣庄市|