Future 模式

类似于ajax请求  页面异步的进行后台请求

用户无需等待请求的结果 就可以继续浏览或者操作

核心就是:去除了主函数的等待时间,并使得原本需要等待的时间段可以用于处理其他业务逻辑

JDK内置实现Future模式演示一下

public class RealData implements Callable<String> {String res = null;@Overridepublic String call() throws Exception {Thread.sleep(5000); // 模拟处理数据的过程 并将结果放在res里面res = "result";return res;}public static void main(String[] args) {FutureTask<String> futureTask =   new FutureTask<String>(new RealData());  ExecutorService executor =   Executors.newFixedThreadPool(1);   executor.submit(futureTask);  //这里使用sleep 模拟 真实业务try {Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}  try {System.out.println("res= " + futureTask.get()); //如果call()没有执行完成 get依然会等待  } catch (Exception e) {e.printStackTrace();} }
}

  

转载于:https://www.cnblogs.com/javabigdata/p/7002812.html

java多线程系列13 设计模式 Future 模式相关推荐

  1. 多线程基础之设计模式Future模式

    一. Future模式介绍 前面的 Thread-Per-Message 模式将耗时时间的处理交给其他线程, 的确可以提高程序的响应性, 但是在将处理交出去的时候, 处理结果仍是未知的, 而等待处理结 ...

  2. Java多线程系列--“JUC线程池”06之 Callable和Future

    转载自  Java多线程系列--"JUC线程池"06之 Callable和Future Callable 和 Future 简介 Callable 和 Future 是比较有趣的一 ...

  3. Java多线程系列--【JUC线程池 02】- 线程池原理(一)

    参考:http://www.cnblogs.com/skywang12345/p/java_threads_category.html 概要 在前面一章"Java多线程系列--"J ...

  4. Java多线程系列--“JUC原子类”03之 AtomicLongArray原子类

    概要 AtomicIntegerArray, AtomicLongArray, AtomicReferenceArray这3个数组类型的原子类的原理和用法相似.本章以AtomicLongArray对数 ...

  5. Java多线程系列(十):源码剖析AQS的实现原理

    在并发编程领域,AQS号称是并发同步组件的基石,很多并发同步组件都是基于AQS实现,所以想掌握好高并发编程,你需要掌握好AQS. 本篇主要通过对AQS的实现原理.数据模型.资源共享方式.获取锁的过程, ...

  6. Java多线程系列之“JUC集合“详解

    Java集合包 在"Java 集合系列01之 总体框架"中,介绍java集合的架构.主体内容包括Collection集合和Map类:而Collection集合又可以划分为List( ...

  7. Java多线程系列--AQS的原理

    原文网址:Java多线程系列--AQS的原理_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Java中的AQS的原理. Java的AQS是JDK自带的锁机制,是JUC(java.util.concu ...

  8. java多线程系列(四)---ReentrantLock的使用

    Lock的使用 前言:本系列将从零开始讲解java多线程相关的技术,内容参考于<java多线程核心技术>与<java并发编程实战>等相关资料,希望站在巨人的肩膀上,再通过我的理 ...

  9. Java多线程系列--“JUC原子类”01之 框架

    2019独角兽企业重金招聘Python工程师标准>>> Java多线程系列--"JUC原子类"01之 框架 根据修改的数据类型,可以将JUC包中的原子操作类可以分 ...

最新文章

  1. c语言虚函数是什么,C语言中什么函数不能声明为虚函数?
  2. Java就业前景怎么样?值得学吗?
  3. 求三个数的最大最小值
  4. SOA架构设计经验分享—架构、职责、数据一致性
  5. sql server中同时执行select和update语句死锁问题
  6. esayexcel下载问题
  7. VS2017好用的插件推荐
  8. C随机数生成通用公式
  9. docxtemplater 图片模块_VUE+docxtemplater来处理word模板
  10. 2023浙江工业大学计算机考研经验贴
  11. 从零开始的前端—HTML 02
  12. 仿真软件测试工程师麦克,仿真工程师面试经验 - 共61条真实仿真工程师面试经验分享 - 职业圈...
  13. S - 歌德巴赫猜想
  14. 班级计算机应用论坛研讨,以“心”育人,处处花开——我校教师参加第四届中小学班主任高峰论坛暨班级管理策略专题研讨会...
  15. 【Hexo搭建个人博客】(十三)Next主题中添加首页文章置顶功能及置顶图标
  16. java 截取字符串第一个字符
  17. 《C Primer Plus》第六章---C控制语句:循环(while for do while 嵌套循环 真值 逗号运算符 复习题编程题)
  18. 以用户的角度看待应用推广渠道
  19. “蔚来杯“2022牛客暑期多校训练营1
  20. daemon.json配置参数详解

热门文章

  1. Unity优化之GC——合理优化Unity的GC (难度3 推荐5)
  2. bzoj 3928: [Cerc2014] Outer space invaders
  3. eclipse光标变成黑块变粗解决办法
  4. System.Timers.Timer 嵌套 System.Windows.Forms.Timer的问题
  5. Pascal's Triangle II
  6. NEXUS S安卓4.0/4.1 【完美】 ROOT教程
  7. 我的学习开发环境,呵呵!
  8. python字符串长度_如何使用python获取字符串长度?哪些方法?
  9. 电脑计算器_CPA考生注意!2020考场只允许带这种计算器
  10. python读取多个文件夹图片_python或C++读取指定文件夹下的所有图片