java~@Async异步功能

@Async注解用于实现Java异步功能,允许在新线程中并行执行任务。异步方法可以无返回值,适合于如发送消息的情景;也可带有返回值,返回Future对象,需在主程序中监听并等待结果。使用时注意将异步代码放入独立类以避免影响其他组件。
摘要由CSDN通过智能技术生成

@Async注解,可以实现异步处理的功能,它可以有返回值,或者直接在新线程时并行执行一个任务,对于异步来说,它的执行是有条件的,你需要把异步代码块放在单独的类里,当spring在注入时,才不会相互影响,因为异步是一个比较特殊的代理。

异步入口

@EnableAsync

具体的异步方法

/**
 * 异常的类型应该和同步执行的类分开,这样在ioc建立时不会相互干扰
 */
@Service
public class MessageService {
  @Async
  public void msg1() throws Exception {

    Thread.sleep(5000L);
    System.out.println("async1:" + LocalDateTime.now() +
        ",id:" + Thread.currentThread().getId());
  }
}

上面代码中的异步,是一个没有返回值的,一般像发送消息可以采用这种方式。

带有返回值的异步

@Async
  public Future<String> asyncMethodWithReturnType() {
    System.out.println("Execute method asynchronously - "
        + Thread.currentThread().getName());
    try {
      Thread.sleep(5000);
      return new AsyncResult<String>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值