永发信息网

什么是java future模式

答案:1  悬赏:0  手机版
解决时间 2021-04-01 16:18
什么是java future模式
最佳答案
Future介绍
用过Java并发包的朋友或许对Future (interface) 已经比较熟悉了,其实Future 本身是一种被广泛运用的并发设计模式,可在很大程度上简化需要数据流同步的并发应用开发。

Future模式可以简单的看成是 Proxy 模式 与 Thread-Per-Message 模式 的结合,在Proxy模式中,用一个Proxy来代替真正的目标(Subject)生成,目标的生成可能是费时的,例如在开启一个内嵌图片的文件中,希望程式能尽快完成开启文件的动作,并显示一个可接受的画面给使用者看,在还不需要看到图片的页面中先使用Proxy代替真正的图片载入,只有在真正需要看到图片时,才由Proxy物件载入真正的图片。

考虑这样一个情况,使用者可能快速翻页浏览文件中,而图片档案很大,如此在浏览到有图片的页数时,就会导致图片的载入,因而造成使用者浏览文件时会有停顿的现象,所以我们希望在文件开启之后,仍有一个背景作业持续载入图片,如此使用者在快速浏览页面时,所造成的停顿可以获得改善。

Future模式在请求发生时,会先产生一个Future物件给发出请求的客户,它的作用就像是Proxy物件,而同时间,真正的目标物件之生成,由一个新的执行绪持续进行(即Thread-Per-Message),真正的目标物件生成之后,将之设定至Future之中,而当客户端真正需要目标物件时,目标物件也已经准备好,可以让客户提取使用。

这里就以java.util.concurrent.Future 为例简单说一下Future的具体工作方式。Future对象本身可以看作是一个显式的引用,一个对异步处理结果的引用。由于其异步性质,在创建之初,它所引用的对象可能还并不可用(比如尚在运算中,网络传输中或等待中)。这时,得到Future的程序流程如果并不急于使用Future所引用的对象,那么它可以做其它任何想做的事儿,当流程进行到需要Future背后引用的对象时,可能有两种情况:

希望能看到这个对象可用,并完成一些相关的后续流程。如果实在不可用,也可以进入其它分支流程。
“没有你我的人生就会失去意义,所以就算海枯石烂,我也要等到你。”(当然,如果实在没有毅力枯等下去,设一个超时也是可以理解的)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
十二点七五-三又十七分之五+一又四分之一
三阳机械在什么地方啊,我要过去处理事情
若矩阵A有(A+2)(A-2)=0,则能否说A=-2或A=
爆炒驴肉如何做
wow 猎人宠物厄科隆尼斯现在还有么?还在希利
我想找个6o岁以上的老头子做我的干爹怎么找,
cpc中文是什么意思
下列四个小数中,最大的一个是A.1.11B.1.01C.
面子比感情重要吗
李公朴是什么时候死的 具体的时间
由人民法院作为执行机关执行的判决有?
有人爱我吗?
杜鹃是布谷鸟吗
亲吻男友硬了怎么办 男友把我腿分开压着我
电阻20w1k9j是什么意思
推荐资讯
邮件系统的系统结构
五万存二年定期有多少利息
居住木屋,身穿毛皮衣服,运输工具是狗拉雪橇
神话起源说是朱熹《圣经》吗
创维电视50E366W怎么样
有关东汉灵帝的电视剧
猫罐头为主长期吃可以吗
冯远征有孩子吗
vivoy66手机自带多少内存?
我梦见一把一把掉头发使怎么回事啊
全球首发电子商务 ABC模式 网店是什么 ? 获
为什么我选择使用 VS Code进行前端开发
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?