zoukankan      html  css  js  c++  java
  • Future模式

    Future 模式有点类似于商品订单。比如在网购物时,当看重某一件商品时,就可以提交订单,当订单处理完成后,在家里等待商品送货上门即可。或者说更形象的我们发送Ajax请求的时候,页面是异步的进行后台处理,用户无须一直等待请求的结果,可以继续浏览活操作其他内容。

      下面同样看一段demo,这段demo的代码的类比较多,为了看着舒服,采用截图的方式:

    先看一下主函数:

    主函数里面没什么东西,就是new了一个FutureClient对象,然后调用这个对象的request方法:

    在这个方法中,先返回一个空的FutureData();然后在这个方法中,开一个新的线程去执行真实数据的封装,先看一下这个对象:RealData

    继承自一个Data接口:

    这个接口里面就一个抽象方法:

    现在在看回去RealData这个类,这个类就是一个实际的数据操作类,数据操作完,把数据放入result中,

    翻到前面的开了一个新的线程的那段代码,在新的线程里面,还调用了FutureData对象的setRealData(realData),下面看一下这个类:

    这个类,巧妙的使用了配合sync使用的notify()和wait()方法,在数据处理完之前,getRequest方法处于阻塞的状态,等待真实对象数据装载完毕,唤醒等待的线程,从而传回真实对象。

  • 相关阅读:
    node.js fs,http
    node.js global object,util and so on
    node.js second day
    node.js
    mysql 多个and的简写
    mysql 返回结果按照指定的id顺序返回
    php file_get_contents fopen 连接远程文件
    软考例题1
    Skyline中使用AxTE3DWindowEx打开新的一个球体
    使用AE进行点的坐标投影变换
  • 原文地址:https://www.cnblogs.com/shmilyToHu/p/6413317.html
Copyright © 2011-2022 走看看