Java Future模式

1.个人简易实现future模式,可以自己实现使用阻塞线程,当请求结果未返回,否则结果返回唤醒阻塞线程,如果实现如下图,详细实现可查看文末参考资料

bb50ea4085943682c944ef7bedcc5b1dcbe.jpg

2.JDK 1.5开始支持的Future实现,实现多个任务异步化,但是请求结果无法直接获取返回结果,因为Future接口

51bdd12c8dbee7199b5d8f4670fdb618b71.jpg

3.JDK1.5中FutureTask既能当线程运行实现了Runnable接口,又能直接获取异步返回的Future数据实现了Future接口

039acecf422324e4b86959f9c86fe704205.jpg

4.项目中实战,当请求1和请求2执行时间差不多,性能能达到一倍的提升。但是注意:必须请求1和请求2无依赖关系,请求1和请求2耗时相差不大,不满足上面两个情况的话,否则引入线程池,以及任务增加了代码复杂,使用意义也不很大,性能提升也不明显。

f7e88c1747dac7e9d2ef2bba4c9e990d40a.jpg

5.java8 CompletableFuture可以支持前面请求异步 计算结果,多个请求获取数据也非阻塞了,性能也会有一点提升。

参考资料:

https://juejin.im/post/5b948b11f265da0aa949f0b2

转载于:https://my.oschina.net/u/1017791/blog/2964219

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值