Spring中@Async注解

项目中遇到了, Feign 调用微服务超时的问题,而调用的方法返回值为 void, 所以这种情况:如果非必要等待执行方法成功,则可以使用 spring 注解 @Async, 完美解决超时问题,从而程序可以正常执行

异步与同步的区别

同步就是整个处理过程顺序执行,当各个过程都执行完毕,并返回结果。 异步调用则是只是发送了调用的指令,调用者无需等待被调用的方法完全执行完毕;而是继续执行下面的流程。

@Async介绍

在Spring中,基于@Async标注的方法,称之为异步方法;这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作。

基于Java配置的启用方式

@Service
@EnableAsync
public class SyncServiceImpl {...}

代码中异步调用无返回值的使用方式

@Service
@EnableAsync
public class SyncServiceImpl {
  @Async
  public void syncTest() {
    AtomicInteger page = new AtomicInteger(0);
    while (true) {
      if (page.page.get() == 50) {
          break;
      }
      logger.info(" 第" + page + "页...");
      page.addAndGet(1);
    }
    logger.info(" 异步结束");
  }
}

你可能感兴趣的:(Spring中@Async注解)