java~@Async异步功能
@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