springboot多线程的使用,有返回值
时间: 2023-12-28 18:20:25 浏览: 67
详解Springboot对多线程的支持
Spring Boot中使用多线程可以使用Java的线程池,也可以使用Spring提供的异步线程池。其中使用Spring提供的异步线程池可以方便的获取异步线程的返回值。
首先,需要在启动类上添加注解@EnableAsync开启异步调用。
然后,在需要异步执行的方法上添加注解@Async,表示该方法需要异步执行。同时,为了获取异步线程的返回结果,需要在方法上返回Future类型的对象。
示例代码如下:
```java
@Service
public class AsyncService {
@Async
public Future<String> asyncMethod() {
// 异步执行的方法
// ...
return new AsyncResult<>("异步执行结果");
}
}
// 调用异步方法
@Autowired
private AsyncService asyncService;
public void testAsyncMethod() {
Future<String> future = asyncService.asyncMethod();
try {
String result = future.get(); // 获取异步线程的返回值
System.out.println(result);
} catch (Exception e) {
e.printStackTrace();
}
}
```
在上述代码中,使用@Async注解表示asyncMethod方法需要异步执行,并且返回Future类型的对象。在调用异步方法时,返回一个Future类型的对象,通过调用future.get()方法获取异步线程的返回值。
阅读全文