Springboot利用CompletableFuture异步执行线程(有回调和无回调)
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import java.util.concurrent.CompletableFuture;
@Service
public class AsyncService {
@Async
public void executeAsyncTaskWithoutCallback() {
// 这是一个异步的无回调任务
System.out.println("执行异步无回调任务: " + Thread.currentThread().getName());
}
@Async
public CompletableFuture<String> executeAsyncTaskWithCallback() {
// 这是一个异步的有回调任务
System.out.println("执行异步有回调任务: " + Thread.currentThread().getName());
return CompletableFuture.completedFuture("任务执行完成");
}
}
// 在主程序中调用
public class Application {
public static void main(String[] args) {
AsyncService asyncService = new AsyncService();
asyncService.executeAsyncTaskWithoutCallback();
CompletableFuture<String> future = asyncService.executeAsyncTaskWithCallback();
future.thenAccept(result -> System.out.println("异步任务返回结果: " + result));
}
}
这个代码示例展示了如何在Spring Boot应用中使用@Async
注解来异步地执行任务。executeAsyncTaskWithoutCallback
方法是一个不带回调的简单异步任务,而executeAsyncTaskWithCallback
方法返回一个CompletableFuture
,可以在其上添加回调函数来处理异步执行的结果。在主程序中,我们调用这两个方法来演示如何执行异步任务。
评论已关闭