Spring中@Async注解的使用异步方法运行中怎么取消

在Spring中基于@Async标注的方法,称之为異步方法;这些方法将在执行的时候将会在独立的线程中被执行,调用者无需等待它的完成即可继续其他的操作。
  1. 某些耗时较长的而鼡户不需要等待该方法的处理结果
  2. 某些耗时较长的方法后面的程序不需要用到这个方法的处理结果时
// 假设执行一个很耗时的任务 System.out.println("异步任務调用成功,返回客户端执行成功异步任务继续执行");
异步任务调用成功,返回客户端执行成功异步任务继续执行
执行完成,我执行了10

从结果可以看出异步任务测试成功

在Java应用中绝大多数情况下都是通过同步的方式来实现交互处理的;但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况之前大部分都是使用多线程来完成此类任务,其实在spring /preview_article/?pgc_id=5929223

执行结果,异步方法异步执行了:

这里为了证明Spring容器中的对象就是当前代理类对象特地输出了一句话:

在Spring 3.x之后通过内置@Async标明异步方法,可以简化异步开发流程

@Async既可提供无返回值的调用,也可提供有返回值的调用下文将分别介绍两种使用方式。

1.2 无返回值的调用方式

从代码输出来看五个任务在同一时间被执行,说明@Async注解能够达到异步执行方法的目的

1.3 有返回值的调用

通过设置超时时,可在约定时间内获取结果避免程序hang住,该方法较为实用

我要回帖

更多关于 注解的使用 的文章

 

随机推荐