@Async的使用

Posted 牧码人 - blacksonny在路上

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@Async的使用相关的知识,希望对你有一定的参考价值。

从Spring3.x 开始,加入@Async这个注解,用户异步线程处理,使用起来很方便。

使用配置如下:spring-task.xml

<task:executor id="executor" pool-size="5" />
<task:scheduler id="scheduler" pool-size="10" />
<task:annotation-driven executor="executor" scheduler="scheduler" />

使用处:

在被调用的方法上增增加@Async的注解,无返回值实例片段

@Async
@Override
public void sendMessage(Long phone, Integer type, Integer batch) throws Exception {}

有返回值:

@Async
@Override
public Future<String> sendMessage(Long phone, Integer type, Integer batch) throws Exception{

        ....

        return AsyncResult<String>("SUCCESS"); 
} 

注意事项

使用@Async注解的方法必须是直接被调用的那个方法,如果是一个内部调用方法的私有方法,该注解不会生效。

以上是关于@Async的使用的主要内容,如果未能解决你的问题,请参考以下文章

如何在async.race函数中使用async.retry

ES7-Es8 js代码片段

来自dispatch_async全局崩溃的C函数调用,但在主队列上工作

C# 使用Awaiter

使用 Async/Await 控制哪些代码停止

[译]async/await中使用阻塞式代码导致死锁