1、关于Java的几种异步处理方式
下面会分不同文章介绍.今天讲下怎么利用注解来完成Java的异步处理.
1、首先在启动类中加入这个注解:
@EnableAsync
@SpringBootApplication
@EnableAsync
public class DemoasyncApplication {
public static void main(String[] args) {
SpringApplication.run(DemoasyncApplication.class, args);
}
}
2、然后再实现类中加入这个注解
@Async
代码如下:
@Service
public class HelloService {
private static final Logger LOGGER = LoggerFactory.getLogger(HelloService.class);
//@Async
public void hello() {
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//-->正常运行需要等待3s才运行-->异步之后无需等待
LOGGER.info("数据输出,任务执行------------------");
}
}
3、在加入注解前可以,输出任务是在程序启动后10秒执行的.
4、加入注解后,可以看出任务执行基本是同时执行的.
如图,Java注解形式的异步任务已经完成.
对于图中的报错可以忽略.因为:
interrupt方法只是改变了中断状态
sleep方法内部会不断的检查中断状态的值,从而自己抛出InterruptedException.
欲了解更多异步处理的方式,请扫描关注下方公众号: