Spring中@Async栗子

来源:互联网 发布:萧山人才网网络招聘 编辑:程序博客网 时间:2024/05/01 23:35

引言: 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的;但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在spring 3.x之后,就已经内置了@Async来完美解决这个问题,本文将完成介绍@Async的用法。

例如, 在某个调用中,需要顺序调用 A, B, C三个过程方法;如他们都是同步调用,则需要将他们都顺序执行完毕之后,方算作过程执行完毕; 如B为一个异步的调用方法,则在执行完A之后,调用B,并不等待B完成,而是执行开始调用C,待C执行完毕之后,就意味着这个过程执行完毕了。

@Async介绍

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

如何在Spring中启用@Async

基于XML配置文件的启用方式,配置如下:

<task:annotation-driven executor="myexecutor" /><task:executor id="myexecutor" pool-size="200-500" queue-capacity="1000" />
基于@Async无返回值调用
@Async  //标注使用  public void asyncMethodWithVoidReturnType() {      System.out.println("Execute method asynchronously. "        + Thread.currentThread().getName());  }

转载:http://blog.csdn.net/blueheart20/article/details/44648667