Java中CompletableFuture如何实现异步回调及其应用原理?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1063个文字,预计阅读时间需要5分钟。
CompleteableFuture的底层原理是:Fork/Join框架 + Treiber栈(异步任务栈)+ CAS,可以实现:创建较少的线程(减少线程上下文切换)执行较多的任务(处理不时的任务)+ 结论:当任务不是非常耗时,多线程是有益的。
CompletebaleFuture的底层原理是:Fork/joinPoll + Treiber stack(异步任务栈)+CAS,可以实现:创建较少的线程(减少线程上下文切换)执行较多的任务(不耗时的任务)
结论:当任务不是很耗时,多线程的作用不大,反而性能上比不上单线程。而在多线程中,推荐CompletableFuture去创建任务、开启线程操作,性能比用Callable与FutureTask组合好很多。
同步调用的缺点
我们假设一个电子商城用户购买商品的场景: 创建订单前的验证方法。
本文共计1063个文字,预计阅读时间需要5分钟。
CompleteableFuture的底层原理是:Fork/Join框架 + Treiber栈(异步任务栈)+ CAS,可以实现:创建较少的线程(减少线程上下文切换)执行较多的任务(处理不时的任务)+ 结论:当任务不是非常耗时,多线程是有益的。
CompletebaleFuture的底层原理是:Fork/joinPoll + Treiber stack(异步任务栈)+CAS,可以实现:创建较少的线程(减少线程上下文切换)执行较多的任务(不耗时的任务)
结论:当任务不是很耗时,多线程的作用不大,反而性能上比不上单线程。而在多线程中,推荐CompletableFuture去创建任务、开启线程操作,性能比用Callable与FutureTask组合好很多。
同步调用的缺点
我们假设一个电子商城用户购买商品的场景: 创建订单前的验证方法。

