专栏名称: ImportNew
伯乐在线旗下账号,专注Java技术分享,包括Java基础技术、进阶技能、架构设计和Java技术领域动态等。
目录
相关文章推荐
芋道源码  ·  再见了SpringBoot,后端AI已成气候! ·  17 小时前  
Java编程精选  ·  阿里员工吐槽:80%以上的leader认为, ... ·  4 天前  
Java编程精选  ·  公司Rust团队全员被裁,只因把服务写得「太 ... ·  2 天前  
芋道源码  ·  抱歉,最近我劝各位真的别轻易离职...... ·  2 天前  
51好读  ›  专栏  ›  ImportNew

正确理解与使用 Future

ImportNew  · 公众号  · Java  · 2017-03-29 12:00

正文

请到「今天看啥」查看全文



一个多月没有写东西了,今天想写的也是想记录下来的一些学习及思考结果,记忆能力有限,避免时间长久就忘记了,今天想写的也还是一些基础的东西,为什么我总是关注这些平时码业务代码很少能用到的又比较基础东西呢,主要是因为我觉得可能光写简单的业务代码可能很少有机会会遇到难题,但是也有万一,万一遇到了怎么解决,万变不离其宗,基础知识的深度决定上层建筑的高度,因此,扯正题吧,今天写的是关于JDK里面的Future。


Future模式


Future模式的核心思想是能够让主线程将原来需要同步等待的这段时间用来做其他的事情 ,这个时候可以更好的利用CPU分片,这点可以这么理解,如果我们申请了线程,但是又没让CPU调度,这岂不是很浪费,我们可以有更好的方法来提高CPU的利用率,也就是让线程本来可以等待(歇息)的时间让线程去做其他的事情,榨干它的剩余价值,当然是以CPU没有打满(100%利用率)为前提,JAVA里面对Future模式的具体实现是JDK1.5开始的JCU包中的Future接口及其实现的定义。


不同的工作方式


上图简单描述了不使用Future和使用Future的区别,不使用Future模式,主线程在invoke完一些耗时逻辑之后需要等待,这个耗时逻辑在实际应用中可能是一次RPC调用,可能是一个本地IO操作等。B图表达的是使用Future模式之后,我们主线程在invoke之后可以立即返回,去做其他的事情,回头再来看看刚才提交的invoke有没有结果。







请到「今天看啥」查看全文