你好,游客 登录 注册 搜索
背景:
阅读新闻

Java Future模式实现

[日期:2017-03-11] 来源:Linux社区  作者:zhangfengzhe [字体: ]

Java Future模式简介

Future模式是Java多线程常用的模式,而且JDK也内置对Future模式的支持,比如在java.util.concurrent包下的FutureTask类。其核心思想在于:发出请求后,可以立即返回对象,但是这个对象实际上是个假对象,并不可立即使用,但是我们可以在干点别的事情后,就可以使用这个假对象获取结果了。这是为什么呢?因为在返回假对象的时候,偷偷的开启了一个线程去请求真正的结果数据。那么下面,我们来模拟实现下Future模式。

代码实现与分析

主流程是:客户端类发出请求返回,做一些其他工作后,在获取请求的结果数据。

通过上图,已经清晰的看到,在获取数据时,立即返回,同时开启了一个线程。

这里需要特别注意的是使用到了wait/notify,那么为什么使用它们呢?

既然我们在请求后立即返回了一个“假对象”,如果立即调用“假对象”的方法获取结果数据,该怎么办呢?我们希望在偷偷开启的线程任务结束后,“假对象”才可以调用方法返回结果数据。因此,利用wait先阻塞住“假对象”的结果返回,当线程完成了结果数据的请求后notify通知下“假对象”可以提供结果数据了。

运行结果验证:

本文永久更新链接地址http://www.linuxidc.com/Linux/2017-03/141681.htm

linux
相关资讯       Java Future模式  Java Future 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款