futrue模式
来源:互联网 发布:淘宝上传好评截图 编辑:程序博客网 时间:2024/06/14 16:58
futrue模式
是一种常用的多线程设计模式,客户端发起请求,服务端不需等待该数据处理完成便立即返回一个伪造的代理数据,用户也无需等待,先去执行其他的若干操作。
public static void main(String[] args) { FutrueClient futrueClient = new FutrueClient(); Data data = futrueClient.request("param"); System.out.println("请求成功,该操作耗时。。"); System.out.println("做其他事情。。"); String result = data.getRequest(); System.out.println(result); }
public class FutrueClient { public Data request(String query) { final FuData fuData = new FuData(); new Thread(new Runnable() { @Override public void run() { Data realData = new RealData(query); fuData.setRealdata(realData); } }).start(); return fuData; }
package futrue;public class FuData implements Data { private Data realdata; private boolean isSetSuccess = false; public synchronized void setRealdata(Data realdata) { if (isSetSuccess) { return; } this.realdata = realdata; isSetSuccess=true; notify(); } @Override public synchronized String getRequest() { while (!isSetSuccess){ try { wait(); } catch (InterruptedException e) { e.printStackTrace(); } } return this.realdata.getRequest(); }}
package futrue;public class RealData implements Data { private String request ="futrue 模式"; public RealData(String query) { System.out.println("这里开始做查询,参数为"+query); try { Thread.sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } request="查询结果"; } @Override public String getRequest() { return this.request; }}
package futrue;public interface Data { String getRequest();}
阅读全文
0 0
- futrue模式
- java futrue模式
- C# 2.0 Other & Futrue
- java concurrent—Futrue
- callable 和 futrue 线程并发
- Callable与Futrue创建线程
- java Futrue FutureTask ——笔记
- 认识异步、非阻塞、futrue、callback
- 多线程中的Callable接口中的Futrue对象
- 黑马程序员--Callable和Futrue以及衍生的类CompletionService
- 多线程相关 Thread、Runnable、Callable、Futrue类关系与区别
- 多线程相关 Thread、Runnable、Callable、Futrue类关系与区别
- tar time stamp in the futrue的问题
- Android多线程研究(8)——Java5中Futrue获取线程返回结果
- 安卓复习之旅—Thread、Runnable、Callable、Futrue类关系与区别
- 模式
- 模式
- 模式
- C#CHART使用总结
- hadoop、hive搭建
- linux系统安装zookeeper
- String中intern的方法
- [LeetCode] 581. Shortest Unsorted Continuous Subarray
- futrue模式
- 网站安装ssl证书(http转https)
- 树的直径、树的重心与树的点分治学习笔记
- javascript中如何获得div中所有span对象
- 171208之Oracle总结
- c语言练习 插入排序 gcd求解
- 重写easyUI日期控件,只限制年月
- 面向对象程序设计上机练习七(类和对象)
- UITextView去掉单行的边距以及各种坑