Java CompletableFuture VS@Async
我不擅长英语 我使用异步方法 选择1 公共CompletableFuture getDiscountPriceAsyncInteger价格{ 返回CompletableFuture.SupplySync->{ log.infosupplyAsync; 退货价格*0.9; },线程池任务执行器; } 选择2 @异步的 公共CompletableFuture getDiscountPriceAsyncInteger价格{ 返回CompletableFuture.SupplySync->{ log.infosupplyAsync; 退货价格*0.9; },线程池任务执行器; } 我想知道使用@Async和不使用它有什么区别 我认为第一个选项1提供了足够的异步方法。Java CompletableFuture VS@Async,java,spring-boot,asynchronous,completable-future,Java,Spring Boot,Asynchronous,Completable Future,我不擅长英语 我使用异步方法 选择1 公共CompletableFuture getDiscountPriceAsyncInteger价格{ 返回CompletableFuture.SupplySync->{ log.infosupplyAsync; 退货价格*0.9; },线程池任务执行器; } 选择2 @异步的 公共CompletableFuture getDiscountPriceAsyncInteger价格{ 返回CompletableFuture.SupplySync->{ log.i
但是,像Option2一样使用它是否正确?选项2是异步执行两次的 如果您用e@Async注释了一个方法,它将由Spring异步执行。因此,您不需要自己使用ThreadPoolExecutor 相反,你可以写:
@Async
public CompletableFuture<Integer> getDiscountPriceAsync(Integer price) {
log.info("supplyAsync");
return new AsyncResult<Integer>((int)(price * 0.9));
}
在这里阅读有关使用Spring异步的更多信息:选项2是异步执行两次 如果您用e@Async注释了一个方法,它将由Spring异步执行。因此,您不需要自己使用ThreadPoolExecutor 相反,你可以写:
@Async
public CompletableFuture<Integer> getDiscountPriceAsync(Integer price) {
log.info("supplyAsync");
return new AsyncResult<Integer>((int)(price * 0.9));
}
请在此处阅读有关Async with Spring的更多信息:如果我的回答有帮助,请接受。感谢您返回CompleteFuture,我必须使用AsyncResult的complete方法。->返回新的AsyncResultint价格*0.9.completable@EddyKim,您也可以使用return CompletableFuture.completedFutureintprice*0.9;我可以更新我的答案,但之前:你真的需要一个完整的未来吗?未来还不够美好吗?如果我的回答有帮助,请接受。感谢您返回CompleteFuture,我必须使用AsyncResult的complete方法。->返回新的AsyncResultint价格*0.9.completable@EddyKim,您也可以使用return CompletableFuture.completedFutureintprice*0.9;我可以更新我的答案,但之前:你真的需要一个完整的未来吗?未来还不够美好吗?相关的:相关的: